在iOS7设备上运行我的应用时,出现了EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代码= 0xe7ffdefe)错误。事实是,它可以在iOS7模拟器上流畅运行。
通过使用断点,我发现错误发生在第6行。
required init(coder aDecoder: NSCoder) { personPicker = ABPeoplePickerNavigationController() super.init(coder: aDecoder) personPicker.peoplePickerDelegate = self } /*error line*/ @IBAction func BPressed(sender: AnyObject) { self.presentViewController(personPicker, animated: true, completion: nil) }
这个错误是新的,并且直到我将这些行添加到代码中之后,该错误才出现在我的设备上。
let url = NSURL(string: urlPath) let request = NSURLRequest(URL: url!) NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in println(NSString(data: data, encoding: NSUTF8StringEncoding)) }
也; 调试器将错误指向此行:
0x16a7f0: trap
并在控制台中提供以下输出:
致命错误:尝试从空指针创建非托管实例
即使我未更改情节提要中的任何内容,此错误也会导致设备黑屏。
感谢您抽出宝贵的时间。
编辑:此错误在搜索引擎中未显示结果,但我认为可能与obj-c有关。
我今天在运行iOS 8.1.3的旧iPad 2(我认为它是iPad 2-型号MD368LL / A)上测试一些Swift代码时遇到了这个问题。事实证明,这个问题无处不在,我所说的是:
Int(arc4random() % <someInt>)
在以后的iPad,iPhone5S,iPhone6等上,此方法运行良好。已通过将代码更改为以下内容来修复:
Int(UInt32(arc4random()) % UInt32(<someInt>))
我认为这是旧硬件上的寄存器溢出。