Xcode:EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代码=0xe7ffdefe)
Xcode: EXC_BREAKPOINT (EXC_ARM_BREAKPOINT, subcode=0xe7ffdefe)
我在 iOS7 设备上 运行 我的应用程序时遇到 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
并在控制台中给出此输出:
fatal error: attempt to create an Unmanaged instance from a null pointer
此错误会导致设备出现黑屏,即使我在情节提要中未进行任何更改。
感谢您抽出宝贵时间。
编辑:这个错误在搜索引擎中没有显示结果,但我认为它可能与 obj-c 有关。
我 运行 今天在针对旧的 iPad 2 测试一些 Swift 代码时遇到了这个问题(我认为这是一个 iPad 2 -- 它是模型 MD368LL/A), 运行 iOS 8.1.3.事实证明,问题无处不在,我正在调用类似的东西:
Int(arc4random() % <someInt>)
这在后来的 iPads、iPhone5S、iPhone6 等上运行良好。通过将代码更改为:
来修复
Int(UInt32(arc4random()) % UInt32(<someInt>))
我认为这是旧硬件上的寄存器溢出。
在我的例子中,如果将太大的数字转换为太小的类型,这最终会导致位溢出问题。例如。 Int(someNumber)
如果 someNumber
是 Int64
类型。
iPhone 5c 在有问题的代码行中断:
我运行陷入这个问题,在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)
我在 iOS7 设备上 运行 我的应用程序时遇到 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
并在控制台中给出此输出:
fatal error: attempt to create an Unmanaged instance from a null pointer
此错误会导致设备出现黑屏,即使我在情节提要中未进行任何更改。
感谢您抽出宝贵时间。
编辑:这个错误在搜索引擎中没有显示结果,但我认为它可能与 obj-c 有关。
我 运行 今天在针对旧的 iPad 2 测试一些 Swift 代码时遇到了这个问题(我认为这是一个 iPad 2 -- 它是模型 MD368LL/A), 运行 iOS 8.1.3.事实证明,问题无处不在,我正在调用类似的东西:
Int(arc4random() % <someInt>)
这在后来的 iPads、iPhone5S、iPhone6 等上运行良好。通过将代码更改为:
来修复Int(UInt32(arc4random()) % UInt32(<someInt>))
我认为这是旧硬件上的寄存器溢出。
在我的例子中,如果将太大的数字转换为太小的类型,这最终会导致位溢出问题。例如。 Int(someNumber)
如果 someNumber
是 Int64
类型。
iPhone 5c 在有问题的代码行中断:
我运行陷入这个问题,在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)