私は現在、NSTimerでpostNotificationを複数回使用していますが、オブザーバはそれを1回だけ受信しています。複数のNSNotificationを投稿するには?
複数のオブザーバーを追加せずに同じ通知を何回も受信する方法はありますか?
私のタイマーは、次のように作成されます。
timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(update) , userInfo: nil, repeats: true)
とUpdateメソッド内では、次のとおりです。
let testNotification: NSNotification = NSNotification(name: "testNotification", object: self, userInfo: nil)
NSNotificationCenter.defaultCenter().postNotification(testNotification)
これは私がviewcontrollersの一つにオブザーバーを登録する方法である:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(testNot), name: "testNotification", object: nil)
updateView()
}
通常、ビューコントローラにオブザーバを追加します。
定期的な間隔でupdate()が呼び出されているため、オブザーバーが初めて通知を受け取るが再発しないため、タイマーが機能することを確認できます。
コードの詳細が必要な場合はお知らせください。
通知を送信するタイマーとコードを作成するコードを表示する必要があります。 –
通知を登録するコード。 –
View Controllerの登録を解除するメソッドはどこに配置しましたか?たぶんviewDidDisappearまたはtestNotの内側にある – Andrea