我在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有关。
答案 0 :(得分:13)
我今天遇到了这个问题,当时测试一些Swift代码对抗旧的iPad 2(我认为它是iPad 2 - 它的型号为MD368LL / A),运行iOS 8.1.3。事实证明,我所谓的地方存在问题:
Int(arc4random() % <someInt>)
这在后来的iPad,iPhone5S,iPhone6等上运行良好。通过将代码更改为:
Int(UInt32(arc4random()) % UInt32(<someInt>))
我认为这是旧硬件上的寄存器溢出。
答案 1 :(得分:4)
我在iPhone 5
中遇到了这个问题,iOS 10.3.3
。
let date = Date()
// Crashes in `iPhone 5`, but works in `iPhone 5s`.
let time: Int = 1000 * Int(date.timeIntervalSince1970) //< Crash due to cast `Double` to `Int`
// This crashes in `iPhone 5`, and `iPhone 5s` too.
let time: Int32 = 1000 * Int32(date.timeIntervalSince1970)
// It works fine in `iPhone 5`, and `iPhone 5s`.
let time: Int64 = 1000 * Int64(date.timeIntervalSince1970)
答案 2 :(得分:2)