我有一個非常基本的用戶類,負責從Firebase獲取用戶數據並在需要時更新當前屏幕的操作系統,一切正常,直到決定更新我的項目斯威夫特3.0從Swift 2.3更新到Swift 3.0後,類協議無法工作
這是用戶級
@objc protocol userClassProtocol {
func updateScreen()
@objc optional func sucessUnlockedCategory()
}
class User {
static let sharedInstance = User()
internal var delegate : userClassProtocol?
func fakeClassThatGetsDataFromFirebase() {
//Got data
print("Has new data")
self.delegate?.updateScreen()
}
}
這裏是視圖控制器:
class FirstViewController: UIViewController, userClassProtocol {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("View will load")
User.sharedInstance.delegate = self
}
func updateScreen() {
print("Screen is going to update")
//Do stuff here
}
}
日誌我從這個得到的是: 有新數據 查看將會出現
但是視圖控制器中的函數updateScreen()永遠不會被調用。 Xcode沒有指出錯誤。
設置委託後,您是否調用fakeClassThatGetsDataFromFirebase? –