Я никогда не использовал API Objective-C Facebook, но я могу дать вам некоторое представление о настройке глобального доступа к вашему экземпляру Facebook.Вы можете получить делегат приложения следующим образом:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
Пока у вас есть открытый метод для доступа к facebook
ivar / свойству MyAppDelegate
, вы можете получить его следующим образом:
Facebook *theFacebook = [appDelegate facebook];
Это не даст вам никаких предупреждений, если вы #import "MyAppDelegate.h"
где-то.
Что касается -authorize:delegate:
, взгляните на Facebook.h ,Объект делегата, который вы передаете этому методу, должен реализовывать протокол FBSessionDelegate
.
Более подробную информацию о делегировании можно найти в документации Apple по этому вопросу .
Редактировать
Чтобы быть действительно явным здесь, это то, что вы должны поместить в файл MyAppDelegate.h
:
// MyAppDelegate.h
#import <UIKit/UIKit.h>
@class Facebook;
@interface MyAppDelegate : NSObject {
UIWindow *window;
UITabBarController *tabBarController;
Facebook *facebook;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) Facebook *facebook;
@end
И MyAppDelegate.m
// MyAppDelegate.m
#import "MyAppDelegate.h"
#import "Facebook.h"
@implementation MyAppDelegate
@synthesize window;
@synthesize tabBarController;
@synthesize facebook;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/*...your implementation here...*/
}
/*...more methods...*/
@end