在我的Child模型中,我声明了以下属性:
var name:String?
var year:String?
var make:String?
var model:String?
和init:
init(name:String, ... ,year:String, make:String, model:String, ...){
self.name = name
...
self.year = year
self.make = make
self.model = model
}
我在这里构建一个孩子:
Child(name:cName,...,year:cYear,make:cMake, model:cModel,...)
在
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!{
对于孩子的名字,我可以直接使用它而不需要打开:
cell!.textLabel.text = child.name
但如果我想使用它们,我必须解开child.year,child.make,child.model。为什么?
cell!.detailTextLabel.text = child.year! + " " + child.make! + " " + child.model!
我遵循了这个tutorial并成功构建了项目。在该项目中,在类似的情况下,我不需要打开包装。 Code
cell.text = album.title
cell.image = UIImage(named: "Blank52")
cell.detailTextLabel.text = album.price
答案 0 :(得分:2)
您需要显式解包,因为您正在使用连接运算符。没有为可选字符串定义连接,因此您需要添加感叹号以打开值。如果你使用字符串插值,你应该可以避免它,如下所示:
cell!.detailTextLabel.text = "\(child.year) \(child.make) \(child.model)"
注意:如果您展示的初始化程序是唯一可用的,您应该能够使您的字符串不可选。