gpt4 book ai didi

objective-c - 在 Swift 中创建等效的 Objective-C Getter 和 Setter

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

以下 Swift 中的 Objective-C 代码等效于什么?

@property (nonatomic, assign, getter = isOpen) BOOL open;

具体来说,如何在 Swift 中声明一个变量来合成具有自定义名称的 getter?

此外,您随后如何覆盖 getter 和 setter 的实现?

最佳答案

您的假设很接近,但有几处可以更改。我会尽力帮助您尽可能接近 Objective-C 版本。

首先,nonatomicassign 在swift 中是不相关的。这给我们留下了

@property (getter = isOpen) BOOL open;

由于 swift 中的属性只是实例变量,因此 swift 翻译如下。

var open:Bool

虽然它具有与 Objective-C 版本相同的基本功能,但它缺少命名的 getter (isOpen)。不幸的是,目前还没有直接翻译成 swift。您可以使用自定义的 getter 和 setter。

var open:Bool {
get {
// custom getter
}
set {
// custom setter
}
}

一个相当粗略的解决方法是制作另一个函数,字面上称为isOpen,它将充当 setter/getter 。

func isOpen() -> Bool { return self.open }

总之,您所要求的可能性很小,但希望在以后的 swift 版本中能够成为现实。

关于objective-c - 在 Swift 中创建等效的 Objective-C Getter 和 Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151197/

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