用OC
寫一個帶返回值的函數(shù)碘耳,不管在OC
中調(diào)用显设,還是在Swift
中調(diào)用,不會出現(xiàn)報錯和警告辛辨;
而用Swift
寫一個帶返回值的函數(shù)捕捂,在OC
和Swift
中調(diào)用會出現(xiàn)什么問題呢?
下面我用resignFirstResponder
這個函數(shù)舉例斗搞,在SearchBar.swift
中我對其進行了重寫
解決辦法:
方法一:在調(diào)用的地方進行如下設(shè)置
//OC
(void)[self.searchBar resignFirstResponder];
//Swift
_ = searchBar.resignFirstResponder()
方法二:只需在func
前添加@discardableResult
@objc @discardableResult override func resignFirstResponder() -> Bool {
super.resignFirstResponder()
return textField.resignFirstResponder()
}
對比兩種方法你會發(fā)現(xiàn)第二種方法更好指攒;不過要注意的是,@discardableResult
是Swift 3
之后引入的僻焚,在此之前是使用@warn_unused_result