我是iPhone新手,偶然发现一个问题的答案,但我希望有人能告诉我为什么。为什么Facebook Connect for iPhone登录对话需要时间延迟?
我在应用程序中使用Facebook Connect。由于我的应用程序需要登录,我以编程方式调用登录对话框而不是使用按钮。我正在使用SDK示例批准的代码:
FBLoginDialog* dialog = [[[FBLoginDialog alloc] init] autorelease];
[dialog show];
我正在使用Xcode中的基于视图的应用程序模板。
最初我把它放在一个我称之为fbLogin的自定义例程中。但是当我把:
[self fbLogin];
里面viewDidLoad,什么都不会发生。例程会被调用(我在那里打了一个警报,只是为了确保),但登录对话框从未出现过。相反,如果我把这里面viewDidLoad:
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(fbLogin) userInfo:nil repeats:NO];
然后它的工作完美。任何人都知道为什么viewDidLoad启动FBLogin对话为时尚早?我稍微延迟很好,但我很好奇。
谢谢。
所以有解决方案
Facebook SDK列出了显示对话框的两种方式 - 使用按钮和我的程序调用的按钮。我用我的,因为应用程序需要Facebook连接。 我创建了一个例程,我调用fbLogin。它会像您的代码一样创建会话,然后检查简历电话以查看是否需要显示对话。 问题是,如果我把[self fbLogin];在viewDidLoad例程中,没有任何反应。我在调用对话框之前总是创建会话,所以我试图找出延迟为什么会起作用。 – 2010-08-04 18:34:41