私は非常に基本的なユーザークラスを持っています。Firebaseからユーザーデータを取得し、必要に応じて現在の画面を更新します。Swift 2.3からSwift 3.0への更新後にクラスプロトコルが動作しない
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
}
}
私はここから取得するログは、次のとおりです:スウィフト3.0
にこれはViewControllerをユーザクラス
@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()
}
}
されており、ここにある 新しいデータがあります ビューが表示されます
しかし、ビューコントローラの関数updateScreen()は呼び出されません。 Xcodeはエラーを指摘していません。
デリゲートを設定した後、fakeClassThatGetsDataFromFirebaseを呼び出しますか? –