gpt4 book ai didi

ios - Swift 类添加 "@objc"为什么

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

这是 a link到 Swift 教程。

我读了协议(protocol)部分,我知道协议(protocol)是否标有@objc:

@objc protocol CounterDataSource {
optional func incrementForCount(count: Int) -> Int
optional var fixedIncrement: Int { get }
}

这意味着这个协议(protocol)是为了指定可选的要求并且只能被类采用

但是教程没有说为什么类也需要用@objc 标记??

@objc class Counter {
var count = 0
var dataSource: CounterDataSource?
func increment() {
if let amount = dataSource?.incrementForCount?(count) {
count += amount
} else if let amount = dataSource?.fixedIncrement? {
count += amount
}
}
}

如果我从类中删除@objc,编译器也不会显示错误消息

那么将@objc 添加到类中有什么区别呢?

最佳答案

弃用

在最新的 Swift 版本中不再可能使用 @objc w/o NSObject 所以这个答案被弃用了。

原创

@objc 是类的前缀,以允许它们在 ObjC 中使用。如果您纯粹使用 Swift 进行交易,则没有必要。

此外,如果您的类继承自 ObjC 类,则不需要前缀。

关于ios - Swift 类添加 "@objc"为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27558694/

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