2016-03-08 36 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" 
相关问题