Swift:unwrapping导致swift编译缓慢

fui*_*iii 6 uitableview ios swift

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!{

这行代码使swift编译速度极慢:

cell!.detailTextLabel.text = child.year! + " " + child.make! + " " + child.model!
Run Code Online (Sandbox Code Playgroud)

如果我有这行代码,那么构建项目需要1分44秒.99%的时间它坚持"编译Swift源文件".如果我将此行更改为

cell!.detailTextLabel.text = " "//child.year! + " " + child.make! + " " + child.model!
Run Code Online (Sandbox Code Playgroud)

构建项目只需要5或6秒.我想知道为什么这行代码会导致编译时间过长.

在我的Child模型中,它们被声明为:

var name:String?
var year:String?
var make:String?
var model:String?
Run Code Online (Sandbox Code Playgroud)

和init:

init(name:String!, ... ,year:String!, make:String!, model:String!, ...){
        self.name = name
       ...
        self.year = year
        self.make = make
        self.model = model
}
Run Code Online (Sandbox Code Playgroud)

我构建一个孩子的部分:

Child(name:cName,...,year:cYear,make:cMake, model:cModel,...)
Run Code Online (Sandbox Code Playgroud)

mat*_*att 4

是的,我就这个缓慢的编译问题提交了错误报告(17585851),您也应该这样做;Apple 发送的用例越清晰越好。我的慢速代码多次出现这种形式:

let title = obj.valueForProperty(MPMediaItemPropertyTitle) as? String
self.titles += title ? title! : ""
Run Code Online (Sandbox Code Playgroud)

(正如您所看到的,它正在进行零测试/展开)。通过以不同的方式做同样的事情来解决这个问题对我来说很麻烦,但并不困难,你也应该这样做。但请先提交错误报告!