2016-03-08 37 views
1

我有一個名爲newMovieVar類型Movie的對象。 下面我有對象聲明。Swift對象永遠不能把值放在它裏面

import Foundation 

class Movie: NSObject { 
var moviePoster: String = "" 
var movieName: String = "" 
} 

在我使用這個對象的視圖控制器,我宣佈這樣的:

var newMovieVar: Movie! 

然後我嘗試在它

newMovieVar?.moviePoster = "bla bla" 
newMovieVar?.movieName = "bla bla bla" 

設定值,但每當我嘗試打印來自newMovieVar的值,我得到

print(newMovieVar?.moviePoster) 
print(newMovieVar?.movieName) 

你知道爲什麼嗎?

+0

「newMovieVar」的Alloc/init? – Larme

+0

對於'var newMovieVar:Movie!',你的'newMovieVar'仍然是'nil'。 – Eendje

回答

2

您正在聲明一個類型爲Movie的變量,但您沒有給它一個值。您需要創建一個新的Movie對象並將其分配給您的變量,以便您可以使用它。

var newMovieVar = Movie() 
3

你不是分配給它的屬性之前初始化newMovieVar

var newMovieVar = Movie() 

newMovieVar.moviePoster = "bla bla" 
newMovieVar.movieName = "bla bla bla" 

print(newMovieVar.moviePoster) // "bla bla" 
print(newMovieVar.movieName) // "bla bla bla" 
2

那是因爲你從來沒有初始化的對象:

嘗試是這樣的:

var newMovieVar = Movie() 
0

您也可以在中提供初始值設定項210函數,並使用如下初始值直接創建Movie:

class Movie: NSObject { 
    var moviePoster: String 
    var movieName: String 

    init(moviePoster: String, movieName: String){ 
     self.moviePoster = moviePoster 
     self.movieName = movieName 
    } 

} 

var newMovieVar = Movie(moviePoster: "bla bla", movieName: "bla bla bla") 

print(newMovieVar.moviePoster) // "bla bla" 
print(newMovieVar.movieName) // "bla bla bla" 
相關問題