gpt4 book ai didi

swift - 如何在 Swift 中创建多个不带参数的不同初始化程序

转载 作者:搜寻专家 更新时间:2023-11-01 07:25:46 24 4
gpt4 key购买 nike

在 Objective-C 中,我们可以有不同的初始化器来做不同的事情并且不带参数。

- (instancetype) initForSomethingSpecific;
- (instancetype) initWithDefaultSettings;

所以你可以称他们为

[[MyClass alloc] initForSomethingSpecific];
[[MyClass alloc] initWithDefaultSettings];

这些类型的初始化器在 Swift 中被翻译成

init(forSomethingSpecific: ())
init(defaultSettings: ())

所以他们可以被称为

MyClass(forSomethingSpecific: ())
MyClass(defaultSettings: ())

但这看起来不是很敏捷

在仅 Swift 的环境中是否有正确的方法来执行此操作?工厂方法是首选吗?

谢谢。

最佳答案

事实上,似乎没有办法用 swift 做到这一点。

我个人的理解/意见是 Swift 中的 init 方法的目的是创建一个具有默认特征的对象,或者使用在初始化程序中传递给它的信息。如果您在初始化程序中为某些特定配置实例化一个对象,那实际上是一个放置在初始化程序中的工厂,而不是一个真正的初始化程序本身。

关于swift - 如何在 Swift 中创建多个不带参数的不同初始化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413729/

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