çağrısının sonraki çağrısında çöker. CloseAndClearTokenInformation çağrısından sonra openWithBehavior öğesini çağırırsak, EXC_BAD_ACCESS neden olur. Yerleşik iOS dahili iletişim kutusunu veya hızlı geçiş yapanlardan birini kullanıp kullanmadığına bakılmaksızın. Facebook iOS SDK 3.1, FBSession openWithBehavior
Bizim kod
eserler aracılığıyla FB, ilk kez giriş yapmak için:if (![FBSession activeSession]) {
#ifdef FREE_APP
NSString* suffix = @"free";
#else
NSString* suffix = @"paid";
#endif
FBSession *session = [[[FBSession alloc] initWithAppID:@"111111111111111"
permissions:permissions
urlSchemeSuffix:suffix
tokenCacheStrategy:nil] autorelease];
[FBSession setActiveSession:session];
}
else if ([FBSession activeSession].isOpen)
[[FBSession activeSession] close];
[[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
Bizim kodunu çıkış için, bundan sonra kod yukarıdaki openWithBehavior sonra başarısız: Başlangıçta yerine openActiveSessionWithReadPermissions kullanıyordum
[[FBSession activeSession] closeAndClearTokenInformation];
OpenWithBehavior, 3.1 docs olarak öngörülen, çökmesine değil, ancak uygulama FB app/Safari'den geri geçiş yapmadı. Belki de bir son eki olması gerektiğinden dolayı? Uygulama değiştirmeyi düzeltmek ve buna geri dönmeniz en kolaysa, lütfen öneride bulunun.
Teşekkürler. Ben
if (!(self.state == FBSessionStateCreated ||
self.state == FBSessionStateCreatedTokenLoaded)) {
// login may only be called once, and only from one of the two initial states
[[NSException exceptionWithName:FBInvalidOperationException
reason:@"FBSession: an attempt was made to open an already opened or closed session"
userInfo:nil]
raise];
}
: Ben 5.x simülatör koştu, ben openWithBehavior edilmiş fazladan, çok yararlı, hata iletisi gördüm
, ben yere gelebilmek ve neden bu kodu yazmadım ... sonra hep taze oturumu başlatmasını önce, kapatır aktif oturum için denetler güncellenmiş kod . ve openWithBehaviour'dan önce yazdım, yine de openWithBehaviour – Heena
'da çöktü. Yukarıdaki ilk snippet, hatayı atan facebook sınıfından. Sadece neler olup bittiğine bir bağlam eklemek için ekledim. Her zaman yeni bir oturum oluşturmadan önce, etkin bir oturum için kontrol ekledikten ve kapattıktan sonra koduma ekledim. – leontx