我已经做了很多Facebook文档的阅读,但我对会话对象的角色很困惑。例如,与方法:Facebook Connect中的会话对象混淆iPhone
session = [FBSession sessionForApplication:myApiKey secret:myAppSecret delegate:self];
那我该怎么办与同时退还给我的会话对象,当想必我需要等待委托回调,以做什么?
其次......在稍后执行我的应用时,当用户授权我在上次执行期间访问他们的帐户时,如何获得对会话对象的引用,以便我可以连接到他们的Facebook帐户并发布信息状态等?文档提到[session resume],但不要说会话引用应该来自哪里。 (并调用[[FBSession会话]恢复]编译,但不起作用。)
谢谢。
你说过,“据我所知,在每次启动应用程序时,都应该使用+ sessionForApplication:secret:delegate创建会话对象,然后调用[会话继续]。”我的问题:有效会话是来自此方法的返回值,还是传递给委托的会话对象?如果是前者,为什么我需要委托人? (由于委托会导致它崩溃,所以传递nil)。如果是后者,返回的会话对象又有什么意义?谢谢。 – 2010-02-09 07:49:55
两者都是相同的对象,因此同样有效。委托方法通常包含委托对象作为参数,以便程序员可以识别委托消息是关于哪个对象。至于你的问题,“为什么我需要一个委托?”:因为创建会话与登录不同。正如我所说,创建会话对象后,你需要调用FBLoginDialog,然后FBSession将使用委托方法在用户实际登录时通知您。此时,您可以继续使用会话。 – 2010-02-09 11:39:19
谢谢...但是如果我知道用户已经登录?那么我不需要显示登录对话框。我不想每次都弹出Facebook对话框(如果我打电话给FBDialog,如果用户已经登录,它会弹出,然后关闭,这会让人分心)。 – 2010-02-09 17:57:48