【问题标题】:How to add a JSON dictionary to realm with AlamofireObjectMapper如何使用 AlamofireObjectMapper 将 JSON 字典添加到领域
【发布时间】:2016-05-23 06:01:29
【问题描述】:

我正在尝试将我的 JSON 对象添加到 Realm,但我一直被抛出此错误

无法将“__NSCFDictionary”(0x10c52f178) 类型的值转换为“NSArray”(0x10c52eb88)。

for user in result as! [AnyObject] { 行。这是我的 JSON 响应:

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

这是我的代码:

import Foundation
import Alamofire
import SwiftyJSON
import RealmSwift
import ObjectMapper
import AlamofireObjectMapper


class Login {

init(userName: String, passWord: String) {
    Data.sharedInstance.userName = userName
    Data.sharedInstance.passWord = passWord
}

// call this method to login
func getRequest() {

let parameters = [
        "username" : Data.sharedInstance.userName!,
        "password" : Data.sharedInstance.passWord!,
    ]

Alamofire.request(.POST, Data.todoEndpoint, parameters: parameters)
        .responseJSON { response in


if let result = response.result.value
{
   let value = JSON(result)
   do{        
     print(Realm.Configuration.defaultConfiguration.fileURL!)
     let realm = try! Realm()
     for user in result as! [AnyObject] {
         try realm.write{
            realm.add(user as! Object, update: true)
         }
     }

   }

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

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

}

}

}

【问题讨论】:

    标签: json swift2 realm alamofire


    【解决方案1】:

    您似乎只收到 一个 用户,而不是很多。在这种情况下,您应该尝试解析对数组的响应,如果失败尝试将其映射到单个用户对象...

    不要使用“as!”。用于?”而是测试 nil。

    例子:

    let dict = response as? Dictionary<String, AnyObject>
    
    if dict != nil {
        // Parse a single User
    } else {
        let arr = response as? [AnyObject]
    }
    

    【讨论】:

    • 如何将其映射到单个用户对象?
    • 我不知道。我认为您可以使用let user = User() 创建一个新用户并从字典中设置您的属性。例如:user.name = dict["name"] as?字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2014-12-16
    • 1970-01-01
    • 2016-02-02
    • 2017-05-31
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多