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

时间:2015-04-03 14:37:50

标签: ios objective-c xcode swift breakpoints

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

3 个答案:

答案 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)

在我的情况下,如果你把一个太大的数字转换成太小的类型,这最终会出现一些溢出问题。例如。如果Int(someNumber)someNumber类型,则为Int64

iPhone 5c突破了有问题的代码行:

enter image description here