我的问题是,您是否可以拥有一个从PFObject继承的抽象类,然后进行子类化以创建其他类?
基本上这可能吗?
AbstractObject:PFObject
ObjectOne:AbstractObject
ObjectTwo:AbstractObject
我尝试实现它,但我遇到了这个错误:
子类的子类可能没有单独的+ parseClassName 定义...
因此,PFObjects的子类的子类是否不可能具有不同的Parse类名?
如果没有,解决方案或最佳做法是什么?
解决方案:(我让抽象类符合PFSubclassing,不要这样做:])
UPMListing
class UPMListing: PFObject {
var title = ""
...
UPMOtherListing
class UPMOtherListing: UPMListing, PFSubclassing {
var category: String?
override class func parseClassName() -> String! {
return "UPMOtherListing"
}
override class func load() {
self.registerSubclass()
}
}
完全错误
由于未捕获的异常而终止应用 ' NSInternalInconsistencyException',原因:'子类的子类 可能没有单独的+ parseClassName定义。 UPMarketplace.UPMOtherListing应该从中继承+ parseClassName UPMarketplace.UPMListing。
答案 0 :(得分:0)
我认为问题是因为你正在注册一个子类:
override class func load() {
self.registerSubclass()
}
从一个继承自另一个注册类的类。据我所知,这是不可能的。
因此,如果您使用单一继承模型,并且UPMListing
是您的基类(伪抽象)类,我认为您应该通过从{load
方法中删除UPMListing
方法来解决问题如果您希望将该方法用于其他目的,请{1}}或其他self.registerSubclass()
来电