编辑:这个问题似乎是由于对swars进行了快速类型检查而变得疯狂,因为它不知道响应是一个数组数组。请参阅我的评论以获得解决方法。
所以,我有一个快速的项目,它在iPhone模拟器上编译并运行得很好,但如果我在Xcode(7.3.1)上切换到iPad模拟器,或者插入我的iPad 3(它是最新的),'迅捷'过程开始消耗大量的Ram,最终冻结我的电脑。如果我终止它,那么SourceKitService也会这样做...如果我然后切换回iPhone模拟器,那么一切运行正常,我甚至不需要重新启动Xcode ......
现在,我隔离了发生此崩溃的部分代码:
private func startConnection(){
Alamofire.request(.GET, "https://some.api.com/")
.responseJSON { response in
let resposta : NSArray = response.result.value as! NSArray
// ----- If I remove the comment from the for loop -----
for i in 0..<resposta.count {
let canalNovo = Canal()
canalNovo.novo(resposta[i][0] as! String,
nome: resposta[i][4] as! String,
desc: resposta[i][5] as! String,
src: resposta[i][3] as! String,
sigla: resposta[i][1] as! String,
corA: resposta[i][2][0] as! String,
corB: resposta[i][2][1] as! String,
isEnabled: false,
updateTime: NSDate()
)
self.canais.append(canalNovo)
}
// ----- It breaks the compiler... -----
self.canais = self.canais.shuffle()
self.tableView.reloadData()
}
}
如上面评论中所述,如果我取消注释 for 循环,我会崩溃,但只有在使用iPad符号时......我已尝试删除符号,清除dirs .../DerivedData
,似乎没有解决问题!请帮助我提供另一种方法来完成这个循环,和/或通过提供一些有关我的小应用程序可能出错的信息......
Ps。:我也尝试了以下内容:
// try One
let respostaSize = resposta.count - 1
for i in 0...respostaSize {
let canalNovo = Canal()
canalNovo.novo(resposta[i][0] as! String,
nome: resposta[i][4] as! String,
desc: resposta[i][5] as! String,
src: resposta[i][3] as! String,
sigla: resposta[i][1] as! String,
corA: resposta[i][2][0] as! String,
corB: resposta[i][2][1] as! String,
isEnabled: false,
updateTime: NSDate()
)
self.canais.append(canalNovo)
}
// try Two
for canal in resposta {
let canalNovo = Canal()
canalNovo.novo(canal[0] as! String,
nome: canal[4] as! String,
desc: canal[5] as! String,
src: canal[3] as! String,
sigla: canal[1] as! String,
corA: canal[2][0] as! String,
corB: canal[2][1] as! String,
isEnabled: false,
updateTime: NSDate()
)
self.canais.append(canalNovo)
}
// try Three
while i < resposta.count {
let canalNovo = Canal()
canalNovo.novo(resposta[i][0] as! String,
nome: resposta[i][4] as! String,
desc: resposta[i][5] as! String,
src: resposta[i][3] as! String,
sigla: resposta[i][1] as! String,
corA: resposta[i][2][0] as! String,
corB: resposta[i][2][1] as! String,
isEnabled: false,
updateTime: NSDate()
)
self.canais.append(canalNovo)
i += 1
}
仍然崩溃......