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
そして、この出力をコンソールに表示します:
致命的なエラー:nullポインターからアンマネージドインスタンスを作成しようとしています
このエラーにより、ストーリーボードで何も変更していなくても、デバイスで黒い画面が表示されます。
お時間をいただきありがとうございます。
編集:このエラーは検索エンジンでは結果を示しませんでしたが、obj-cに関連している可能性があると思います。
IOS 8.1.3を実行している古いiPad 2(iPad 2だと思います-モデルMD368LL/A)に対していくつかのSwiftコードをテストしたところ、今日この問題に遭遇しました。問題は私が何かを呼んでいたところどこにでもあったこと:
Int(arc4random() % <someInt>)
これは、以降のiPad、iPhone5S、iPhone6などで正常に機能しました。コードを次のように変更することで修正されました。
Int(UInt32(arc4random()) % UInt32(<someInt>))
古いハードウェアでのレジスタオーバーフローだったと思います。
私はこの問題に遭遇しました、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)