2015-04-03 56 views
12

在iOS7設備上運行我的應用程序時,出現EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代碼= 0xe7ffdefe)錯誤。 事情是,它在iOS7模擬器上運行平穩。Xcode:EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代碼= 0xe7ffdefe)

通過使用斷點,我發現在線路發生錯誤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。 ,運行iOS 8.1.3 -

+1

我得到了完全相同的錯誤(包括子代碼),但我沒有看到控制檯中的任何東西。它在我的iPhone 6上工作正常,但在我的4S和iPod Touch上崩潰。似乎在模擬器和實際設備上都是這種情況。對我來說問題的線是對座標數組(這是x和y Ints的結構)的附加調用。 – vegather 2015-04-06 20:11:01

+2

您是否在代碼中使用Int(或任何其他數據類型)的任何地方,可能會得到一個值如此之大,以至於有點溢出?正如我所說的,我只有4S和iTouch(32位設備)的問題,但它在我的iPhone 6上運行得很完美。那麼,我使用普通的Ints來存儲arc4random()的值。改變這個到UInt32反而解決了我的問題。 http:// stackoverflow。com/questions/28177192/app-crashes-on-iphone-4s-but-no-other-device-possible-issue-with-skphysicsconta – vegather 2015-04-06 20:30:04

+0

確實是一個很好的視角。 但是,ios模擬器不模擬32位? 我的代碼實際上使用了很多變量,但最大值爲13位數字和40字符串。 – TheSaurus 2015-04-06 20:55:31

回答

11

我碰到這個問題,今天測試針對一個老的iPad 2(這是模型MD368LL/A我認爲這是一個iPad 2)一些銀行代碼時跑了。原來存在的問題,每個地方我打電話是這樣的:

Int(arc4random() % <someInt>) 

這工作得很好對後來的iPad,iPhone5S,iPhone6等固定通過改變代碼:

Int(UInt32(arc4random()) % UInt32(<someInt>)) 

我想它是舊硬件上的寄存器溢出。

+0

謝謝。 試過了,解決了這個問題。舊設備上做字符串(INTA + INTB)時崩潰: – TheSaurus 2015-05-05 18:52:37

+0

謝謝你這麼多@dlw – Abdelrahman 2016-12-26 17:51:50

+0

完全一樣的問題,對我們來說。明確標記爲UInt32修補程序。 – cayleyh 2018-02-02 19:15:19

2

在我而言,這結束了從位溢出的問題是,如果你投得大一些到過少的類型。例如。 Int(someNumber)如果someNumberInt64類型。

在問題的代碼行iPhone 5C突破:

enter image description here

1

我就遇到了這個問題,在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) 
相關問題