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
}
справки о
Пожалуйста, прочитайте о Факультативных.