0

facebook の SDK for iOS をアプリに実装しています。ただし、通知を登録および登録解除することになっている 2 つの関数があります。

ios を使用した Facebook のログインからFacebook へのログイン:

viewDidLoadメソッドで、メソッドの末尾に次のコードを追加して、アプリ デリゲートで定義したセッション変更通知を登録します。

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(sessionStateChanged:)
name:FBSessionStateChangedNotification
object:nil];

次のコードをdidReceiveMemoryWarningメソッドの末尾に追加して、通知の登録を解除します。

[[NSNotificationCenter defaultCenter] removeObserver:self];

私はかなりの数のView Controllerを持っており、それらはすべてFacebookのAPIを使用する必要があるため、 applicationDidFinishLoadingWithOptionsregister通知用) に登録/登録解除メソッドを実装する必要があると考えました

しかし、appDelegate では applicationDidReceiveMemoryWarning を使用できないunregisterため、の removeObserver コマンドを実装する必要があるかどうか、またどのように実装する必要があるかはわかりません。

  • DidReceiveMemoryWarning はアプリのすべての viewController にアクセスしていますか?
  • viewControllers の 1 つだけで登録を解除するだけで十分でしょうか?
4

1 に答える 1

1

アプリケーション デリゲートメモリ警告を受け取ります。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

そうでない場合は、通知センターを使用する別のオプションがあります。

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
           selector:@selector(whatever:)
               name:UIApplicationDidReceiveMemoryWarningNotification
             object:nil];

とはいえ、メモリ警告でオブザーバーを削除することは不適切であるように思えます。どの時点で元に戻しますか?でもねえ、それがFacebookの推奨事項なら...

于 2012-11-07T16:33:49.263 に答える