0
Facebook SDKを使用してデリゲートの仕組みを理解しようとしています。Xcode/Objective-C Facebook代理人の試行
私は私のビューコントローラとしてこれを持っている:
#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
それから私は、デリゲートとして使用する..which私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
だから私は何をしたいです私がログインすると、コンソールに「Logged in」という文字列を記録する必要があります。今のところ、そうではありません。明らかに、私は混乱しています。
更新: デリゲートのインスタンス化が追加されました。
待ちを、何?あなたの最初の文は問題ありませんが、あなたのコードは理にかなっていません。 –
それを心配しないでください。私は誤解しました。 –
これを試してみました..アップデートを参照してください:( – JoshDG