Realmswift: необязательная ошибка переноса

Я пытаюсь передать свои данные JSON в базу данных моего царства, но мне по-прежнему выдается эта ошибка

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

в user.name = (result["name"]?.string)! но я могу получить этот вывод, когда я делаю print(result)

Particulars {
"name" : "Jonny Walker",
"api_token" : "qwertyuiop1234567890",
"profile_picture" : "http:default_profile_picture.jpg",
"id" : 10,
"email" : "jwalker@gmail.com"
"username" : "jonny"
}

Это мой код:

Alamofire.request(.POST, Data.loginEndpoint, parameters: parameters)
        .responseObject { (response: Response<Particulars, NSError>) in

            if let result = response.result.value
            {

                do{
                    print(Realm.Configuration.defaultConfiguration.fileURL)
                    print(result)
                    let user = Particulars()
                    let realm = try Realm()
                    user.name = (result["name"]?.string)!
                    user.apiToken = (result["api_token"]?.string)!
                    try realm.write() {
                        realm.add(user, update: true)
                    }
                }

                catch let err as NSError {
                    print("Error with realm: " + err.localizedDescription)
                }

            }
            else
            {
                print("JSON data is nil. 123")
            }
    }

1 ответ

Решение

Дополнительные функции могут содержать нулевое значение.

! означает принудительное развертывание, не используйте ! если вы не уверены, что это имеет значение.

Может быть проблема:

user.name = (result["name"]?.string)!
user.apiToken = (result["api_token"]?.string)!

Удалить ! в приведенных выше строках кода.

Пытаться:

if let validName = (result["name"]?.string) {
   //Will be executed only when non-nil
   user.name = validName
}

if let validAPIToken = (result["api_token"]?.string) {
   //Will be executed only when non-nil
   user.apiToken = validAPIToken
}

справки о

Пожалуйста, прочитайте о Факультативных.

Другие вопросы по тегам