Я пытаюсь понять, как работает делегат, используя Facebook SDK.
У меня в качестве контроллера просмотра это:
#import <UIKit/UIKit.h>
#import "FBConnect.h"
#import "FacebookClass.h"
@interface ViewController : UIViewController
@property (nonatomic, retain) Facebook *facebook;
- (IBAction)btnPress:(id)sender;
@end
#import "ViewController.h"
@implementation ViewController
@synthesize facebook;
- (void)viewDidLoad
{
[super viewDidLoad];
FacebookClass *delegate = [[FacebookClass alloc] init];
facebook = [[Facebook alloc] initWithAppId:@"228051460617035" andDelegate:delegate];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)btnPress:(id)sender {
[facebook authorize:nil];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [self.facebook handleOpenURL:url];
}
...and other default viewcontroller methods
Тогда в моем FacebookClass ... который я хочу использовать в качестве делегата ... У меня есть:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "FBConnect.h"
@interface FacebookClass : NSObject
<UIApplicationDelegate, FBSessionDelegate>
@end
#import "FacebookClass.h"
@implementation FacebookClass
- (void)fbDidLogin {
NSLog(@"Logged in");
}
- (void)fbDidExtendToken:(NSString*)accessToken
expiresAt:(NSDate*)expiresAt {
NSLog(@"Extended it");
}
- (void)fbDidNotLogin:(BOOL)cancelled
{
NSLog(@"Did not login");
}
- (void)fbDidLogout
{
NSLog(@"Logged out");
}
- (void)fbSessionInvalidated
{
NSLog(@"Session not valid");
}
@end
Итак, я хочу, чтобы при входе в систему я хотел, чтобы в консоли была записана строка «Вход в систему». На данный момент это не так. Очевидно, я в замешательстве.
Обновление:
Добавлен экземпляр делегата.