2016-05-25 2 views
0

私は自分のレルムデータベースへの私のJSONデータを渡すためにしようとしていますが、私はuser.name = (result["name"]?.string)!Realmswift:オプションのラッピングエラー

fatal error: unexpectedly found nil while unwrapping an Optional value

このエラーにスローされ続けるが、私はprint(result)

を行うとき、私はこの出力を取得することができています
Particulars { 
"name" : "Jonny Walker", 
"api_token" : "qwertyuiop1234567890", 
"profile_picture" : "http:default_profile_picture.jpg", 
"id" : 10, 
"email" : "[email protected]" 
"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") 
      } 
    } 

答えて

0

Optionalsは、することができ、ゼロ値を保持する。

!は、強制的なアンラップを意味します。値がわからない限り、!は使用しないでください。

が問題である可能性があります。

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 
} 

Documention Optionalsについて読ん

のPls。

関連する問題