如何实现PFObject子类的子类?
How to implement subclasses of PFObject subclasses?
我有一个 Parse PFObject
的子类 A
定义为(省略细节):
@interface A : PFObject <PFSubclassing>
@end
@implementation A
+ (void)load {
[self registerSubclass];
}
+ (NSString *)parseClassName {
return NSStringFromClass([self class]);
}
@end
我需要 A
的子类 B
,定义为
@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建议不要在子类A
中定义+ (NSString *)parseClassName
,只能在子类B
.
中定义
但是如果我这样做,当调用 A
的 registerSubclass
方法时,我会得到一个错误 +[A parseClassName]: unrecognized selector sent to class
。
当我还省略了子类 A
的 + (void)load
方法以及 AppDelegate 中对 [A registerSubclass]
的调用时,应用程序似乎可以正常工作。
所以我的问题是:
只对最底层的子类<PFSubclassing>
、+ (NSString *)parseClassName
、+ (void)load
注册到AppDelegate中是对的还是哪个方法对去做吗?
回答我自己的问题;也许这对其他人有帮助(我现在已经使用以下设置 2 周了,一切似乎都运行良好):
如果有 PFObject
个子类的子类,仅对于层次结构中最低的子类,则必须执行以下操作:
- 在AppDelegate中注册
- 采用
PFSubclassing
并实施+(void)load
和+(NSString *)parseClassName
我有一个 Parse PFObject
的子类 A
定义为(省略细节):
@interface A : PFObject <PFSubclassing>
@end
@implementation A
+ (void)load {
[self registerSubclass];
}
+ (NSString *)parseClassName {
return NSStringFromClass([self class]);
}
@end
我需要 A
的子类 B
,定义为
@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
的 registerSubclass
方法时,我会得到一个错误 +[A parseClassName]: unrecognized selector sent to class
。
当我还省略了子类 A
的 + (void)load
方法以及 AppDelegate 中对 [A registerSubclass]
的调用时,应用程序似乎可以正常工作。
所以我的问题是:
只对最底层的子类<PFSubclassing>
、+ (NSString *)parseClassName
、+ (void)load
注册到AppDelegate中是对的还是哪个方法对去做吗?
回答我自己的问题;也许这对其他人有帮助(我现在已经使用以下设置 2 周了,一切似乎都运行良好):
如果有 PFObject
个子类的子类,仅对于层次结构中最低的子类,则必须执行以下操作:
- 在AppDelegate中注册
- 采用
PFSubclassing
并实施+(void)load
和+(NSString *)parseClassName