2012-02-24 46 views
0

我正在尝试将Facebook与我的iOS应用程序进行整合。要使用FB SDK,我已经为这些文件禁用了带“-fno-objc-arc”的ARC。但是,它仍然有EXC_BAD_ACCESS错误,我需要改变如何在登录后更新UITextView

@property(nonatomic, assign) id<FBSessionDelegate> sessionDelegate; 

@property(nonatomic, retain) id<FBSessionDelegate> sessionDelegate; 

登录现在工作,但

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
     && [defaults objectForKey:@"FBExpirationDateKey"]) { 
     [delegate facebook].accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; 
     [delegate facebook].expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; 
     [defaults synchronize]; 
    } 
    if (![[delegate facebook] isSessionValid]) 
    { 
     [[delegate facebook] authorize:nil]; 
    } 
} 
- (void)fbDidLogin 
{ 

    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[[delegate facebook] accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[[delegate facebook] expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 

    [[delegate facebook] requestWithGraphPath:@"me" andDelegate:self]; 
} 

- (void)request:(FBRequest *)request didLoad:(id)result 
{  
    if ([result isKindOfClass:[NSArray class]]) { 
     result = [result objectAtIndex:0]; 
    } 
    if ([result objectForKey:@"name"]) { 
     self.uitextview.text = [result objectForKey:@"name"]; 
    } 
} 

我已签登录后没有更新的UITextView “[result objectForKey:@”name“]”将返回结果,但“self.uitextview”无法识别。

如何成功登录后更新UITextView?

+0

哪里是你'self.uilabel'? – 2012-02-24 05:14:40

+0

抱歉,我的意思是uitextview – 2012-02-25 14:04:54

回答

0

发现Appdelegate中的ViewController init无法使用,如Facebook Hackbook示例中所示。

替换为以下声明:

UITabBarController *tabBarController = (UITabBarController *) self.window.rootViewController; 
ViewController *viewcontroller = [[tabBarController viewControllers] objectAtIndex:4]; 

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1