FacebookSSOとSDKをプロジェクトに追加する作業をしています。私のメインのFacebookコードはすべて私のAppDelegate.m
とにありAppDelegate.h
ます。[[[UIApplication sharedApplication] delegate] performSelector:@selector(callLogin)];
私のビューでは、ボタンを押すとコントローラーが呼び出されます。私のcallLoginメソッドはAppDelegate.m
次のようになります。
- (void)callLogin{
facebook = [[Facebook alloc] initWithAppId:@"XXXXX" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
}
}
次に、私のメソッドで、ビューコントローラにある- (void)fbDidLogin
メソッドを呼び出しますsetInfo
。
//this method is located in AppDelegate.m
- (void)fbDidLogin {
NSLog(@"FACEBOOK DID LOGIN");
ViewController * vc = [[ViewController alloc]init];
[vc setInfo];
}
最後に、-(void)setInfo
これが私のコードです。ViewController.m
-(void)setInfo{
infoL.text = [NSString stringWithFormat: @"Connected to Facebook!"];
NSLog(@"%@",infoL);
//NSLog returns null
}
setInfoからラベルを変更できず、NSLoginfoL
はnullを返します。ViewDidLoadなどのメソッドを使用してラベルを更新できますが、setInfoは更新できません。何が間違っているので、どうすれば修正できますか?