gpt4 book ai didi

Swift:覆盖子类中的类型别名

转载 作者:IT王子 更新时间:2023-10-29 05:30:03 24 4
gpt4 key购买 nike

所以我在考虑在我的项目中使用自定义模式,但我无法让它发挥作用。主要思想是更改每个子类的 typealias 以访问子类特定接口(interface)。

protocol InstanceInterface: class {

typealias Interface

var interface: Interface { get }
}

// Baseclass
protocol FirstClassInterface: class { /* nothing here for the example */ }

class FirstClass: InstanceInterface, FirstClassInterface {

typealias Interface = FirstClassInterface

var interface: Interface { return self }
}

// Subclass
protocol SecondClassInterface: FirstClassInterface {

func foo()
}

class SecondClass: FirstClass, SecondClassInterface {

typealias Interface = SecondClassInterface // <--- This does nothing :(

func foo() { print("hello world") } // Swift 2.0 here
}

// Lets say I want to call foo trough the interface
let test = SecondClass()

test.interface.foo() // 'Interface' does not have a member named 'foo'

我是不是做错了什么,或者我误解了一些 Swift 的概念?!我确实需要在这里进行子类化,以免一遍又一遍地实现父类(super class)协议(protocol)中的所有内容。我的小模式甚至可能吗?我将不胜感激任何帮助。 :)

最佳答案

这样的事情对您有用吗?

class MyClass<T> {

}

class MySubclass1: MyClass<String> {

}

class MySubclass2: MyClass<Int> {

}

关于Swift:覆盖子类中的类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32138343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com