gpt4 book ai didi

swift - 使用实例方法扩展类

转载 作者:行者123 更新时间:2023-11-28 06:41:09 25 4
gpt4 key购买 nike

我正在尝试扩展 Swift 中现有类型的功能。我想使用点语法来调用类型上的方法。

我想说:

existingType.example.someMethod()
existingType.example.anotherMethod()

我目前正在使用这样的扩展程序:

extension ExistingType {
func someMethod() {
}
func anotherMethod() {
}
}

existingType.someMethod()
existingType.anotherMethod()

这样做会暴露太多的功能。所以,我想将这些方法写在一个类中,并且只扩展 ExistingType 以使用该类的一个实例。我不确定解决此问题的正确方法。

如果我真的要实现现有类型,我会执行以下操作:

struct ExistingType {

var example = Example()
}

struct Example {
func someMethod() {
}

func anotherMethod() {
}
}

允许我通过以下方式调用方法:

let existingType = ExistingType()
existingType.example.someMethod()

问题是我没有实现该类型,因为它已经存在。我只需要扩展它。

最佳答案

看起来您正在尝试向现有类 ExistingType 添加另一个属性 example 并调用该属性的方法。但是,您不能在扩展中添加属性。向现有类添加另一个属性的唯一方法是对其进行子类化。

关于swift - 使用实例方法扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37958292/

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