我的问题是,您是否可以有一个继承自PFObject的抽象类,然后将其抽象化以创建其他类?
基本上有可能吗?
AbstractObject:PFObject
ObjectOne:AbstractObject
ObjectTwo:AbstractObject
我尝试实现它,但是遇到了这个错误:
子类的子类可能没有单独的+ parseClassName定义...
因此,不可能有具有不同解析类名称的PFObjects子类的子类吗?
如果没有,什么解决方案或最佳实践?
解决方案:(我正在使抽象类符合PFSubclassing,请不要这样做:])
UPM清单
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应该从UPMarketplace.UPMListing继承+ parseClassName。
我认为问题是因为您正在注册子类:
override class func load() {
self.registerSubclass()
}
从另一个注册的类继承的类上。据我所知这是不可能的。
因此,如果您使用的是单个继承模型,并且UPMListing
是您的基类(伪抽象),那么我认为您应该通过load
从中删除方法来解决问题UPMListing
,或者self.registerSubclass()
如果您想保留该方法用于其他用途,则只需调用即可
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句