2012-02-24 7 views
0

Facebookを自分のiOSアプリにARCで統合しようとしています。 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'のですか? –

+0

申し訳ありませんが、私はuitextview –

答えて

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

関連する問題