swift - 如何覆盖子类中的数组 var?

标签 swift class swift3 overriding

我有 Slider 类。其中幻灯片数组[Advertisement]。现在我创建了 sliderForFood,它必须滑动食物数组 [Food]。我怎样才能用食品 [FOOD] 变种覆盖我的广告 [Advertisement] 变种。

class SliderADV {
    var arrayAdvertisements: [Advertisement] = [Advertisement]()
}

class SliderForFood: SliderADV {
    var arrayFood:[Food] = [Food]()

     override var arrayAdvertisements: [Advertisement]{
        get {
           return arrayFood
           }
       set{
           if newValue is [ArrayFood]{
               self.arrayAdvertisement = newValue
          }
     }
}
}

最佳答案

继承基本上意味着“是一种”。你是说“食物 slider 是一种广告 slider ”这对我来说没有意义。

IMO,你应该创建一个这样的协议(protocol):

protocol Slider {
    associatedtype ThingToSlide
    var things: [ThingToSlide] { get set }
}

然后你有你的两个 slider 类符合它:

class SliderForAds : Slider {
    typealias ThingToSlide = Advertisment
    var things: [Advertisment] = [Advertisment]()
}

class SliderForFood : Slider {
    typealias ThingToSlide = Food
    var things: [Food] = [Food]()
}

关于swift - 如何覆盖子类中的数组 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41757268/

相关文章:

ios - 错误 - 使用 Alamofire 和 AlamofireObjectMapper 的请求函数(swift - iOS)

ios - 在我的 iOS 应用小部件中使用 OAuth 库

python - 根据给定值查找列表中字典项的索引号

c++ - 结构作为基类 - C/C++ 互操作性

swift - 如何使用layoutkit构建whatsapp时间戳布局?

ios - 当转到另一个 ViewController 时,TabBar 嵌入式 NavigationController 栏消失

C++ 非静态成员函数开销

ios - 不在 UItableView Swift 4 的滑动操作中显示标题

ios - 如何在 iOS Swift 中设置带有标记群集的自定义标记图标

ios - swift iOS : ImageUrl in Firebase database