我有一个解析PFObject
的子类A
定义为(详细信息省略):
@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
[A registerSubclass];
[B registerSubclass];
我不确定这是否是定义PFObject
子类子类的正确方法:
https://www.parse.com/questions/what-does-this-error-mean-subclasses-of-subclasses-may-not-have-separate-parseclassname-definitions 建议不应该在子类A
中定义+ (NSString *)parseClassName
,而应该在子类B
中定义。
但是如果我这样做,+[A parseClassName]: unrecognized selector sent to class
调用A
的registerSubclass
方法时会出现错误。
当我还省略子类A
的+ (void)load
方法以及AppDelegate中对[A registerSubclass]
的调用时,该应用程序似乎可以工作。
所以我的问题是:
仅用于最低级别的子类是否正确 <PFSubclassing>
、 + (NSString *)parseClassName
、 + (void)load
,并在 AppDelegate 中注册它,或者哪种方法是正确的?
回答我自己的问题; 也许这对其他人有帮助(我现在已经使用以下设置2周了,一切似乎都很好):
如果一个人有PFObject
子类的子类,则只有对于层次结构中最低的子类,才需要执行以下操作:
- 在应用程序委托中注册它
- 采用
PFSubclassing
并实施+(void)load
和+(NSString *)parseClassName