如何实现PFObject子类的子类?

时间:2015-01-14 08:29:26

标签: parse-platform subclassing

我有一个Parse A的子类PFObject定义为(详细信息遗漏):

@interface A : PFObject <PFSubclassing>
@end
@implementation A
+ (void)load {
    [self registerSubclass];
}
+ (NSString *)parseClassName {
    return NSStringFromClass([self class]);
}
@end

我需要B的子类A,定义为

@interface B : A <PFSubclassing>
@end
@implementation B
+ (void)load {
    [self registerSubclass];
}
+ (NSString *)parseClassName {
    return NSStringFromClass([self class]);
}
@end

AB已在AppDelegate中注册

[A registerSubclass];
[B registerSubclass];

我不确定这是否是定义PFObject子类的子类的正确方法:

https://www.parse.com/questions/what-does-this-error-mean-subclasses-of-subclasses-may-not-have-separate-parseclassname-definitions建议不要在子类+ (NSString *)parseClassName中定义A,只能在子类B中定义。 但如果我这样做,则在调用+[A parseClassName]: unrecognized selector sent to class的{​​{1}}方法时会出现错误A
当我也忽略了子类registerSubclass的{​​{1}}方法,以及AppDelegate中对+ (void)load的调用时,该应用似乎有效。

所以我的问题是:

是否正确,仅用于最低级别A[A registerSubclass]<PFSubclassing>的子类,并在AppDelegate中注册,或者这是正确的方法它?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题;也许这有助于其他人(我现在使用以下设置2周,一切似乎工作正常):

如果一个具有PFObject子类的子类,仅针对层次结构中的最低子类,则必须执行以下操作:

  • 在AppDelegate中注册
  • 采用PFSubclassing并实施+(void)load+(NSString *)parseClassName