2015-07-10 60 views
0

我有一個名爲Attendee的類,它繼承自PFObject。我還有另外一個叫Speaker的班,它是Attendee的子班。PFObject的子類的子類沒有被註冊

下面是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()

我不明白爲什麼會這樣,因爲我清楚地註冊兩個子類之前,我做他們什麼。

回答