0

私のアプリには、モデルから NSNotifications を受信する必要があるいくつかの VC があり、非同期でデータを取得しています。問題は、VC がときどき消え、モデルがデータのフェッチを終了し、既になくなっている VC に通知を送信しようとすると、アプリがクラッシュすることです。このクラッシュを防ぐオプションはありますか? NSNotificationCenter に「オブザーバーがいなくても大丈夫」と言うようなものですか?

:)

// Subscribe for notifications
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finishedLoading) name:@"Finished Loading" object:nil];

// Model sends a notification to a subscribed VC
[[NSNotificationCenter defaultCenter] postNotificationName:@"Finished Loading" object:nil userInfo:nil];
4

4 に答える 4

1

私は、あなたがする必要があると思います:

[[NSNotificationCenter defaultCenter] removeObserver:self ];
于 2013-09-23T14:45:12.027 に答える
0

正直なところ、このアプローチでは、病気を治すのではなく、症状を緩和しています.

AFNetworking などの非同期ネットワーク ライブラリを使用してNSOperationインスタンスを返す場合は、NSOperationQueue. 次に、コントローラーがポップされたら、viewWillDisappearメソッドで未処理の非同期リクエストをすべてキャンセルします。

[myOpQueue cancelAllOperations];
于 2013-09-23T14:50:06.427 に答える