我有一个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
A
和B
已在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中注册,或者这是正确的方法它?
答案 0 :(得分:0)
回答我自己的问题;也许这有助于其他人(我现在使用以下设置2周,一切似乎工作正常):
如果一个具有PFObject
子类的子类,仅针对层次结构中的最低子类,则必须执行以下操作:
PFSubclassing
并实施+(void)load
和+(NSString *)parseClassName