一尘不染

Xcode:EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代码= 0xe7ffdefe)

swift

在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有关。


阅读 522

收藏
2020-07-07

共1个答案

一尘不染

我今天在运行iOS 8.1.3的旧iPad 2(我认为它是iPad 2-型号MD368LL /
A)上测试一些Swift代码时遇到了这个问题。事实证明,这个问题无处不在,我所说的是:

Int(arc4random() % <someInt>)

在以后的iPad,iPhone5S,iPhone6等上,此方法运行良好。已通过将代码更改为以下内容来修复:

Int(UInt32(arc4random()) % UInt32(<someInt>))

我认为这是旧硬件上的寄存器溢出。

2020-07-07