Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode/Objective-C Facebook委派尝试_Objective C_Xcode_Delegates_Facebook Ios Sdk - Fatal编程技术网

Xcode/Objective-C Facebook委派尝试

Xcode/Objective-C Facebook委派尝试,objective-c,xcode,delegates,facebook-ios-sdk,Objective C,Xcode,Delegates,Facebook Ios Sdk,我试图通过使用Facebook SDK来了解代理是如何工作的 我将此作为我的视图控制器: #import <UIKit/UIKit.h> #import "FBConnect.h" #import "FacebookClass.h" @interface ViewController : UIViewController @property (nonatomic, retain) Facebook *facebook; - (IBAction)btnPress:(id)send

我试图通过使用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
#导入
#导入“FBConnect.h”
#导入“FacebookClass.h”
@界面ViewController:UIViewController
@财产(非原子,保留)Facebook*Facebook;
-(iAction)b按:(id)发送方;
@结束
#导入“ViewController.h”
@实现视图控制器
@综合facebook;
-(无效)viewDidLoad
{
[超级视图下载];
FacebookClass*委托=[[FacebookClass alloc]init];
facebook=[[facebook alloc]initWithAppId:@“228051460617035”和delegate:delegate];
//加载视图后,通常从nib执行任何其他设置。
}
-(iAction)b按:(id)发送方{
[facebook授权:无];
}
-(BOOL)应用程序:(UIApplication*)应用程序handleOpenURL:(NSURL*)url{
return[self.facebook handleOpenURL:url];
}
…和其他默认的viewcontroller方法
然后在我的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
#导入
#进口
#导入“FBConnect.h”
@接口FacebookClass:NSObject
@结束
#导入“FacebookClass.h”
@FacebookClass的实现
-(无效)FBD登录{
NSLog(@“已登录”);
}
-(void)fbDidExtendToken:(NSString*)accessToken
到期日期:(NSDate*)到期日期{
NSLog(“扩展it”);
}
-(无效)fbDidNotLogin:(BOOL)已取消
{
NSLog(@“未登录”);
}
-(无效)退出
{
NSLog(@“注销”);
}
-(无效)FBSessionInValidate
{
NSLog(@“会话无效”);
}
@结束
因此,我希望在登录时,我希望它在控制台中记录字符串“Logged in”。到目前为止,还没有。显然,我很困惑

更新:
添加了委托实例化。

您的对象FBDelegate为零。它从未被引用过。你应该在你的房间里

- (void)viewDidLoad
方法实例执行以下操作:

FBDelegate = [[FacebookClass alloc] init];

等等,什么?您的第一句话很好,但您的代码毫无意义。您应该将实例委托声明为类属性。