【问题标题】:Save my own class as an array in Parse将我自己的类保存为 Parse 中的数组
【发布时间】:2015-04-18 14:58:53
【问题描述】:

我有一个名为 Pet 的类。我将它收集在一个数组中。然后我尝试像下面的代码一样保存它。我还尝试将 NSObject 继承到 Pet 类,但没有用。是否不可能在 Parse 中保存我自己的数组类,或者我做错了什么?注意当前用户存在且有效。

代码中定义的某处:

var pets : [Pet] = [Pet]()

填充:

pets.append(newPet)

并尝试保存:

@IBAction func saveTapped(sender: UIBarButtonItem) {
    PFUser.currentUser().setObject(pets, forKey: "pets")

    user.saveInBackgroundWithBlock({ (success, error) -> Void in
        if error == nil {
            DLog("Suceess saving")
        } else {
            displayAlertWithTitle(self, nil, error.description)
            DLog(error)
        }
    })
}

我得到的错误是:

2015-02-17 18:28:59.906 Patikoy[38292:2121589] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (Patikoy.Pet)'

附言我是 Swift 和 Parse 的初学者。任何帮助表示赞赏。

【问题讨论】:

    标签: arrays swift parse-platform save


    【解决方案1】:

    Parse 可能会尝试将“宠物”数组序列化为 JSON。但是,您的“宠物”类不能序列化为 JSON。

    来自NSJSONSerialization Class Reference

    可以转换为 JSON 的对象必须具有以下内容 属性:

    • 顶级对象是 NSArray 或 NSDictionary。

    • 所有对象都是 NSString、NSNumber、NSArray、NSDictionary 或 NSNull 的实例。

    • 所有字典键都是 NSString 的实例。

    • 数字不是 NaN 或无穷大。

    您需要在 Pet 类上创建一个将其转换为 Dictionary 的方法,如this Stack Overflow answer 中所述。

    【讨论】:

    • 嗯。我需要更深入地挖掘。这个例子是 Obj-C,我希望它很快。不过谢谢,我的搜索是空的,现在我有一些工作要做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多