Подтвердить что ты не робот

Xcode: EXC_BREAKPOINT (EXC_ARM_BREAKPOINT, subcode = 0xe7ffdefe)

Я получаю сообщение EXC_BREAKPOINT (EXC_ARM_BREAKPOINT, subcode = 0xe7ffdefe) при запуске моего приложения на устройстве iOS7. Дело в том, что он работает плавно на симуляторе 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.

4b9b3361

Ответ 1

Я столкнулся с этой проблемой сегодня, тестируя некоторый код Swift на старый iPad 2 (я думаю, что это iPad 2 - модель MD368LL/A), работающая под управлением iOS 8.1.3. Оказалось, что проблема существует везде, что я называю что-то вроде:

Int(arc4random() % <someInt>)

Это работало отлично на более поздних iPad, iPhone5S, iPhone6 ​​и т.д. Исправлено путем изменения кода на:

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

Я думаю, что это переполнение регистра на старом оборудовании.

Ответ 2

В моем случае это закончилось тем, что было связано с проблемой переполнения бит, если вы добавили слишком большое число в слишком маленький тип. Например. Int(someNumber), если someNumber был Int64.

iPhone 5c разбивается на строку с нарушением кода:

введите описание изображения здесь

Ответ 3

Я столкнулся с этой проблемой, в 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)