Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我应该在哪个ViewController上实现FacebookSDK';谁是移动观察者?_Ios_Xcode_Facebook - Fatal编程技术网

Ios 我应该在哪个ViewController上实现FacebookSDK';谁是移动观察者?

Ios 我应该在哪个ViewController上实现FacebookSDK';谁是移动观察者?,ios,xcode,facebook,Ios,Xcode,Facebook,我正在我的应用程序中实现facebook的iOS SDK。但是,有两个功能用于注册和注销通知: 发件人: 在viewdiload方法中,通过将以下代码添加到方法末尾,注册在应用程序委托中定义的会话更改通知: [[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(sessionStateChanged:) 名称:FBSessionStateChangedNotification 对象:无] 及 通过在didRece

我正在我的应用程序中实现facebook的iOS SDK。但是,有两个功能用于注册和注销通知:

发件人:

viewdiload方法中,通过将以下代码添加到方法末尾,注册在应用程序委托中定义的会话更改通知:

[[NSNotificationCenter defaultCenter]
addObserver:self
选择器:@selector(sessionStateChanged:)
名称:FBSessionStateChangedNotification
对象:无]

通过在didReceiveMemoryWarning方法的末尾添加以下代码来注销通知:

[[NSNotificationCenter defaultCenter]移除观察者:self]

由于我有相当多的视图控制器,而且它们都应该使用facebook的API,我认为我应该在应用程序IDFinishLoadingWithOptions中实现注册/取消注册方法(对于
注册
通知)

但是我不确定是否应该以及如何实现
取消注册
的removeObserver命令,因为ApplicationIDReceiveMemoryWarning对于AppDelegate不可用

  • DidReceiveMemoryWarning正在访问应用程序的所有ViewController吗
  • 仅在我的一个ViewController中注销是否足够

应用程序委托不会收到内存警告:

如果没有,另一种选择是使用通知中心:

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

尽管如此,在我看来,删除记忆警告中的观察者是不合适的。你会在什么时候恢复它?但是,嘿,如果这是Facebook推荐的…

gosh,我没有在文档中找到didReceiveMemoryWarning函数,因为有一个最愚蠢的错误(match case是开着的!):D所以这是一个很好的观点。为什么删除该函数中的通知不是一个好主意?如果在加载视图时开始观察通知,那么我假设该视图需要它。如果在视图可见时移除观察者,那么这很奇怪,因为正如我所说的,视图需要它。。。