У меня проблема с последней версией iOS SDK.Я успешно выполнил вход в систему, и приложение возвращается, но методы делегирования, такие как fbDidLogin и т. Д., Не вызываются.
Если все это пробовали в одном файле делегата без каких-либо контроллеров, и он заработал.Но если у меня есть несколько контроллеров, они больше не работают /
Я использую свой самописный класс FacebookFetchter
для работы с Facebook.
//FacebookFetchter.h
#import Foundation/Foundation.h>
#import "FBConnect.h"
@interface FacebookFetchter : NSObject <FBDialogDelegate,FBSessionDelegate,FBRequestDelegate> {
Facebook *facebook;
FacebookFetchter *facebookFetcher; }
@property (nonatomic, retain) IBOutlet UIWindow *window; @property (retain) Facebook *facebook; @property (retain) FacebookFetchter
*facebookFetcher; @end
// FacebookFetchter.m
#import "FacebookFetchter.h"
@implementation FacebookFetchter @synthesize facebookFetcher,facebook;
-(void)login{
NSLog(@"facebook login...");
facebook = [[Facebook alloc] initWithAppId:@"..."]; //took the id out
NSArray *permissions = [[NSArray arrayWithObjects:
@"read_stream", @"offline_access", @"user_photos", @"user_photo_video_tags" , @"friends_photo_video_tags", @"friends_photos",@"friends_about_me",@"user_about_me",@"manage_friendlists",@"read_friendlists",@"user_birthday",@"friends_birthday", nil] retain];
[facebook authorize:permissions delegate:self];
}
...
-(void)fbDidLogin {
NSLog(@"Erfolgreich eingeloggt...."); } ...
@end
В моем делегате я реализовал это, и я также настроил plist со схемой URL fbapp_id
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
NSLog(@"AppDelegate handleOpenURL");
return [[[settings facebookFetcher] facebookFetcher] handleOpenURL:url];
}
там настройки моего контроллера представления:
//settings.h @interface Settings : UIViewController {
FacebookFetchter *facebookFetcher;
//Facebook *facebook; }
@property (retain) FacebookFetchter
*facebookFetcher;
- (IBAction)sync; @end
//settings.m @synthesize facebookFetcher;
//within this action the facebook login is called
- (IBAction)sync{
NSLog(@"sync...");
facebookFetcher = [[FacebookFetchter alloc] init];
[facebookFetcher login]; }
Любые предложения ??
Спасибо!