У меня проблемы с приложением. Он работает в симуляторе, но вылетает при запуске на реальном устройстве. Код довольно прост:
class loginScreen: UIViewController {
let userDefaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
userDefaults.setObject("127.0.0.1", forKey: "host")
userDefaults.synchronize()
}
Я протестировал это на симуляторе iOS 7 и iOS 8 без проблем, но при запуске на реальном устройстве он вылетает в строке userDefaults.setObject("127.0.0.1", forKey: "host")
, и я действительно не знаю почему. В консоли отладчика у меня нет сообщений (кроме «EXC_BAD_ACCESS» в строке setObject при сбое), а в журналах сбоев iPhone я могу прочитать:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0xfffffffc
Я не могу понять, почему две «системы» ведут себя так по-разному ..
Конечно, я пробовал много предложений, например:
размещение и
userDefaults.synchronize()
перед методом setObjectобъявить переменную NSString со значением «127.0.0.1» и использовать ее в методе setObject
используйте setValue вместо setObject
используйте другой тип (
userDefaults.setObject(666, forKey: "host")
)
но ничего не меняется, он всегда вылетает, когда пытается установить значение для userDefaults ... любая помощь или предложения будут оценены!
PS: комментируя userDefaults.setObject("127.0.0.1", forKey: "host")
и userDefaults.synchronize()
приложение запускается без проблем
Спасибо!