Ios 使用带有自定义PFUser指针的对象时,突然从解析中获得错误

Ios 使用带有自定义PFUser指针的对象时,突然从解析中获得错误,ios,xcode,swift,parse-platform,Ios,Xcode,Swift,Parse Platform,在过去的48小时里,我一直在拼命想弄清楚我改变了什么,这让我发疯 我使用的是解析数据库,我有两个类: 用户类,它是PFUser的子类 一个Car类,它是PFObject的子类 这个Car类有一个字段“owner”,它是指向用户的指针 2天前,我在尝试保存新车或访问现有车辆时,随机出现以下错误: 2016-01-14 20:18:04.135 YetiTest[3439:1130906][Error]:捕获到“NSInternalInconsistencyException”,原因是“Key”

在过去的48小时里,我一直在拼命想弄清楚我改变了什么,这让我发疯

我使用的是解析数据库,我有两个类:

  • 用户类,它是PFUser的子类
  • 一个Car类,它是PFObject的子类
这个Car类有一个字段“owner”,它是指向用户的指针

2天前,我在尝试保存新车或访问现有车辆时,随机出现以下错误:

2016-01-14 20:18:04.135 YetiTest[3439:1130906][Error]:捕获到“NSInternalInconsistencyException”,原因是“Key”firstName“没有数据。请在获取其值之前调用FetchIfRequired。”:

firstName是我的用户类的属性,但它已填充。今天我还回去检查了我的代码表单的版本,在我开始得到错误之前,现在我也在那里得到了错误。我在这里真的不知所措。。。我是编程新手,我很确定我正在做其他一些不好的事情,但是以前它是有效的,所以我不明白!我在下面列出了我的班级定义

汽车

使用者


}

您需要实现协议
PFSubclassing
(请参阅)

首先,我在Swift中使用Parse-SDK时遇到了非常奇怪的错误,因为我在
initialize
方法中注册了子类(您的相似性可能会有所不同)


因此,当您的应用程序第一次启动时,请调用
ParseCar.registerSubclass()

因此,在这两个类的initialize方法中,我都有self.registerSubclass。我应该从每个类定义中删除这一行,然后在我的应用程序中,didfishlaunchingwithoptions委托方法put ParseCar.registerSubclass和ParseUser.registerSubclassIf添加
PFSubclassing
无效,然后尝试是。
class ParseCar: PFObject
{
    @NSManaged var owner: PFUser?
    @NSManaged var make: String?
    @NSManaged var model: String?
    @NSManaged var year: String?
    @NSManaged var color: String?
    @NSManaged var licensePN: String?

init(owner: PFUser, make: String?, model: String?, year: String?, color: String?, licensePN: String?) {
    super.init()

    self.owner = owner
    self.make = make
    self.model = model
    self.year = year
    self.color = color
    self.licensePN = licensePN
}


extension ParseCar: PFSubclassing
{

class func parseClassName() -> String {
    return "Car"
}

override class func initialize() {
    var onceToken: dispatch_once_t = 0
    dispatch_once(&onceToken) {
        self.registerSubclass()
    }
}
}
class ParseUser: PFUser {

    @NSManaged var firstName: String?
    @NSManaged var lastName: String?
    @NSManaged var zipCode: String?
    @NSManaged var userRole: String?
    @NSManaged var stripeID: String?
    @NSManaged var address1: String?
    @NSManaged var address2: String?
    @NSManaged var city: String?
    @NSManaged var state: String?
    @NSManaged var zip: String?
    @NSManaged var country: String?


    override class func initialize() {
        var onceToken : dispatch_once_t = 0;
        dispatch_once(&onceToken) {
            self.registerSubclass()
    }
}
class ParseCar: PFObject, PFSubclassing { ... }