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) 如果 someNumberInt64 类型。

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)