1
這裏的a link到Swift教程。Swift類添加「@objc」爲什麼
我讀的協議部分,我知道,如果協議標有@objc:
@objc protocol CounterDataSource {
optional func incrementForCount(count: Int) -> Int
optional var fixedIncrement: Int { get }
}
這意味着該協議以指定可選的要求,可通過類
,但只有通過教程沒有說爲什麼類需要用@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添加到類與否之間有什麼不同?
但是,只有從NSObject繼承的類可以聲明爲「@ objc」。那麼什麼時候'@ objc'會在課堂上有用呢? – 2017-08-10 19:45:38
@AndrewPaulSimmons - 你會是正確的,它沒有用。在過去,可以使用'@objc' w/o'NSObject',但是這個功能在隨後的Swift版本中被刪除了。我會相應地更新答案。 – Logan 2017-08-14 10:49:16