当我在一个EXC_BREAKPOINT设备上运行我的应用程序时,我收到了一个EXC_ARM_BREAKPOINT,subcode=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有关。
发布于 2015-05-05 16:39:04
今天,当我在一个旧的iPad 2上测试一些Swift代码时遇到了这个问题(我认为它是一个iPad 2 --它是MD368LL/A模型),运行iOS 8.1.3。事实证明,这个问题无处不在,我称之为:
Int(arc4random() % <someInt>)
这在后来的iPads、iPhone5S、iPhone6等上很有效。通过将代码更改为:
Int(UInt32(arc4random()) % UInt32(<someInt>))
我认为这是旧硬件上的寄存器溢出。
发布于 2017-07-14 03:28:13
我在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)
发布于 2016-05-01 05:06:05
在我的例子中,如果您将太大的数字转换为太小的类型,则这最终是由于位溢出问题造成的。例如,如果Int(someNumber)
someNumber
是Int64
类型的话。
违反代码行的iPhone 5c中断:
https://stackoverflow.com/questions/29434253
复制相似问题