2015-04-22 2 views
0

Я использую Xcode 6.3 beta4 с SDK 6.4 и Target 7.1.Xcode повышает значение «EXC_BAD_ACCESS code = 1», когда Target равен 7.0

Запуск простой линии, как следующий на IOS 7.1 Simulator или устройство выдает ошибку:

let alert = UIAlertController(title: "title", message: "message", preferredStyle: .Alert) 

Ошибка является:

EXC_BAD_ACCESS code=1 

ошибка не происходит, когда я бегу в Симулятор iOS 8.4.

Похоже, что конфликт вызван различными версиями SDK.

Как я могу предотвратить ошибку EXC_BAD_ACCESS code=1 на целевом компьютере с iOS версии 7.x?

Edit: Xcode показывает мне:

enter image description here

Как отладить такую ​​ошибку?

ответ

4

UIAlertView в iOS7 были заменен UIAlertController в iOS8.

То, что я предлагаю вам это сделать следующим образом для того, чтобы решить вопросы Совместимость

if objc_getClass("UIAlertController") != nil { 

     println("UIAlertController can be instantiated") 

      //make and use a UIAlertController 

    } 
    else { 

      println("UIAlertController can NOT be instantiated") 

      //make and use a UIAlertView 
    } 
2
UIAlertController 

действителен только для iOS 8.0 и выше. Таким образом, вы должны использовать сегментацию UIAlertView для прошивки 7.

+0

Или использовать только UIAlertView везде и не заморачиваться с UIAlertController. Таким образом, вы также убедитесь, что ваш код правильно протестирован; легко получить ошибку в одной из двух версий кода. – gnasher729

Смежные вопросы