Наслаждаться.

аюсь внедрить последнюю версию Facebook Connect SDK, и у меня возникли некоторые проблемы. По некоторым причинам обратные вызовы делегата дляFBSessionDelegate протокол не увольняется. Я следовал инструкциям на странице git Facebook и пытался имитировать пример приложения Facebook, но безуспешно. Я схожу с ума здесь, поэтому я опубликую свой код, и, возможно, кто-то увидит что-то глупое, что я пропустил.

#import <Foundation/Foundation.h>
#import "FBConnect.h"

@interface FacebookWrapper : UIViewController <FBSessionDelegate, FBRequestDelegate, FBDialogDelegate>{
 Facebook* _facebook;
 NSArray* _permissions;
}

@property(readonly) Facebook *facebook;

- (void)login;

@end

#import "FacebookWrapper.h"

static NSString* kAppId = @"1234455667778";

@implementation FacebookWrapper

@synthesize facebook = _facebook;

- (id)init {
 if (self = [super init]) {
  _permissions =  [[NSArray arrayWithObjects: @"read_stream", @"offline_access",nil] retain];
  _facebook = [[Facebook alloc] initWithAppId:kAppId];

 }
 return self;
}

- (void)dealloc {
 [_facebook release];
 [_permissions release];
 [super dealloc];
}

- (void)login {
 [_facebook authorize:_permissions delegate:self];
}

- (void)fbDidLogin {
 NSLog(@"Did Log In");
}

- (void)fbDidNotLogin:(BOOL)cancelled {
 NSLog(@"Failed to log in");
}

- (void)fbDidLogout {
 NSLog(@"Logged Out");
}

И чтобы позвонить из другого класса,

FacebookWrapper *fw = [[FacebookWrapper alloc] init];
[fw login];

Поведение, которое я вижу по телефону, соответствует ожиданиям. Приложение Facebook запускается при инициализации и запрашиваются разрешения. Затем телефон возвращает мое приложение на передний план, но делегатыFBSessionDelegate никогда не увольняют. Я пробовал это в примере приложения Facebook, используя мой идентификатор приложения, и он работал нормально. Я понятия не имею, в чем разница.

Ответы на вопрос(1)

Ваш ответ на вопрос