Swift - Discardable Result

OC寫一個帶返回值的函數,不管在OC中調用,還是在Swift中調用,不會出現報錯和警告;

而用Swift寫一個帶返回值的函數,在OCSwift中調用會出現什麼問題呢?

下面我用resignFirstResponder這個函數舉例,在SearchBar.swift中我對其進行了重寫

解決辦法:

方法一:在調用的地方進行如下設置

//OC
(void)[self.searchBar resignFirstResponder];
//Swift
_ = searchBar.resignFirstResponder()

方法二:只需在func前添加@discardableResult

@objc @discardableResult override func resignFirstResponder() -> Bool {
    super.resignFirstResponder()
    return textField.resignFirstResponder()
}

對比兩種方法你會發現第二種方法更好;不過要注意的是,@discardableResultSwift 3之後引入的,在此之前是使用@warn_unused_result

參考:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章