Xcode / Objective-C Попытка делегата Facebook - PullRequest
0 голосов
/ 24 марта 2012

Я пытаюсь понять, как работает делегат, используя 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

Итак, я хочу, чтобы при входе в систему я хотел, чтобы в консоли была записана строка «Вход в систему». На данный момент это не так. Очевидно, я в замешательстве.

Обновление: Добавлен экземпляр делегата.

1 Ответ

0 голосов
/ 24 марта 2012

Ваш объект FBDelegate равен нулю. Это никогда не происходит. Вы должны в вашем

- (void)viewDidLoad

экземпляр метода, который он делает:

FBDelegate = [[FacebookClass alloc] init];
...