【问题标题】:How to implement subclasses of PFObject subclasses?如何实现PFObject子类的子类?
【发布时间】:2015-01-14 08:29:25
【问题描述】:

我有一个 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

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 建议不要在子类A 中定义+ (NSString *)parseClassName,只能在子类B 中定义。
但是如果我这样做,当调用AregisterSubclass 方法时,我会收到错误+[A parseClassName]: unrecognized selector sent to class
当我还省略了子类A+ (void)load 方法以及AppDelegate 中对[A registerSubclass] 的调用时,该应用程序似乎可以工作。

所以我的问题是:

是否正确,仅用于最底层的子类&lt;PFSubclassing&gt;+ (NSString *)parseClassName+ (void)load,并在AppDelegate中注册,或者哪种方法是正确的?

【问题讨论】:

    标签: parse-platform subclassing


    【解决方案1】:

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

    如果有PFObject 子类的子类,仅适用于层次结构中最低的子类,则必须执行以下操作:

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

    【讨论】:

    • 子类的子类会在仪表板中显示为已完成的不同对象,还是会合并在一起?
    • @Michael Voccola 它们在仪表板中显示为不同的对象(至少原始 Parse 仪表板是这种情况)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2015-02-17
    • 2016-06-10
    相关资源
    最近更新 更多