所以我有一个问题,我不确定是否完全可行。
对于我的本地模型,我希望能够从两个类之一继承。
例如:
我有一个事件对象,它有名称、位置、参加者等。这个对象可以从后端下载(我正在使用 Parse)或在本地创建以上传到服务器。
如果正在下载,那么它将使用从服务器下载的 parseObject 进行初始化。 Parse 提供了我可以使用的 createdAt
日期时间、objectID
和 updatedTime
。但是,如果我要在本地创建对象以便稍后上传,那么设置这些变量将是多余的,因为我不知道它们实际上是什么(直到我的后端懒惰地加载这些时间和 objectID 到存在。
为了在本地存储这些数据类型,我计划使用对象,BaseParseObject
定义如下:
class BaseParseObject: NSObject {
var objectID: String
var createdAt: NSDate
var updatedAt: NSDate
var className: String
var timeSinceCreation: NSTimeInterval {
get {
return createdAt.timeIntervalSinceNow
}
}
init(parseObject: PFObject) {
self.objectID = parseObject.objectId!
self.createdAt = parseObject.createdAt!
self.updatedAt = parseObject.updatedAt!
self.className = parseObject.parseClassName
}
}
和一个 baseObject
定义为:
class BaseObject: NSObject {
var className: String
init(className: String) {
self.className = className
}
}
然后我有我的事件对象,它可以在本地创建以上传或从服务器下载。
有什么方法可以选择从这两个类继承?只有一个事件类而不是两个?
最佳答案
一句话,没有。 Swift 和 Objective-C 都不支持多重继承。不过,您可以使用类扩展获得类似的效果。您可以让一个类实现多个扩展。
关于ios - 两个类的 Swift 可选继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017940/