PFObject的子类的子类未被注册

时间:2015-07-10 19:13:14

标签: ios parse-platform subclass pfobject

我有一个名为Attendee的类,它继承自PFObject。我还有另一个名为Speaker的班级,它是Attendee的孩子。

以下是Attendee&的定义。 Speaker

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

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

class Speaker: Attendee {
    override class func initialize() {
        var onceToken : dispatch_once_t = 0;
        dispatch_once(&onceToken) {
            self.registerSubclass()
        }
    }
}

在使用任何解析功能之前,我在applicationDidFinishLaunch方法中注册了两个:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    Speaker.initialize()
    Attendee.initialize()

    Parse.setApplicationId(ObjectManager.appID, clientKey: ObjectManager.clientKey)

    ...
}

但是,当我稍后尝试在我的代码中使用AttendeeSpeaker类时,我收到此错误:

The class MedConf.Attendee must be registered with registerSubclass before using Parse.

触发错误的代码是: var attendee = Attendee()

我不明白为什么会发生这种情况,因为在我对它们做任何事情之前我都清楚地注册了这两个子类。

1 个答案:

答案 0 :(得分:0)

我敢打赌,你可以将实现PFSubclassing协议的任何类子类化。尝试制作扬声器它自己的类,并使用Parse中的关系API建立关系。如果您需要资源来构建关系数据,请在此处查看。 https://www.parse.com/docs/ios/guide#objects-relational-data