ios – фатальная ошибка: неожиданно найден нуль при развертывании необязательного значения (lldb)

Я использовал UIViewController в Swift, но получаю его, когда пытаюсь сохранить данные и пытаюсь вернуть их обратно в приложение.

import UIKit class ViewController: UIViewController { @IBOutlet var linefields:[UITextField]! func dataFilePath() -> String { let paths = NSSearchPathForDirectoriesInDomains( NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) let documetnDirectory = paths[0] as! NSString return documetnDirectory.stringByAppendingPathComponent("data.plist") as String } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let filePath = self.dataFilePath() if (NSFileManager.defaultManager().fileExistsAtPath(filePath)){ let array = NSArray(contentsOfFile: filePath) as! [String] for (var i=0;i<array.count;i++){ linefields[i].text = array [i] } } let app = UIApplication.sharedApplication() NSNotificationCenter.defaultCenter().addObserver(self,selector: "applicationWillResignActive:",name:UIApplicationWillResignActiveNotification, object: app) } func applicationWillResignActive(notification:NSNotification){ let filePath = self.dataFilePath() let array = (self.linefields as NSArray).valueForKey("text") as! NSArray //-----> Next line: fatal error: unexpectedly found nil while unwrapping an Optional value array.writeToFile(filePath, atomically:true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

Кто-нибудь знает об этом?

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

Проверьте свои соединения с textFeilds (файл раскадровки) на Outlets (быстрый файл). Поскольку отсутствующие соединения будут возвращать нуль.

Это ошибка Swift, когда вы скажете, что в определенной переменной будет значение, но не было ни одного. В принципе, одна из переменных, которые вы читали данные, не имела данных, поскольку по какой-то причине она никогда не была назначена.

Как уже (self.linefields as NSArray).valueForKey("text") as! NSArray комментаторы, это, вероятно, эта строка: (self.linefields as NSArray).valueForKey("text") as! NSArray (self.linefields as NSArray).valueForKey("text") as! NSArray . Мой совет – переключить as! as? или as , потому что это не скажется быстро, «здесь определенно значение». Другие комментарии предложили попытаться заменить эту потенциальную проблемную строку чем-то более простым и более эффективно использовать функцию map() другом месте вашего кода.

  • Заставить пользователей отключить Siri, если в организации сети
  • Как настроить анимированный UIImageView?
  • вычислить G - Force в приложении iOS
  • Как я могу изменить записи .plist на основе моей Схемы?
  • Запуск Xcodes UITesting на Jenkins никогда не сбивает тест
  • (id) в сигнатуре метода, переданной как селектор в шаблоне целевого действия
  • UITableView слайд не редактируемые строки с редактируемые строки Xcode iPhone
  • Правильный способ распространения shouldAutorotate в глубокий modal viewcontroller в iOS6
  • Точечная запись в объективе-c
  • Получение AllJoyn для работы на iOS
  • Как создать библиотеку C / C ++ и поместить их в Xcode для iOS?
  • Давайте будем гением компьютера.