只有在使用iPad符号时,Xcode才能快速挂起并使用50Gb +内存

时间:2016-06-14 00:19:43

标签: ios xcode swift ipad

编辑:这个问题似乎是由于对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
            }

仍然崩溃......

0 个答案:

没有答案