पर बाद के कॉल पर क्रैश होता है अगर हम बंद करने के लिए कॉल के बाद openWithBehavior को कॉल करते हैं और CleleTokenInformation, यह EXC_BAD_ACCESS का कारण बनता है। भले ही यह मूल आईओएस अंतर्निहित संवाद या तेजी से स्विचिंग वाले लोगों में से एक का उपयोग कर रहा हो।फेसबुक आईओएस एसडीके 3.1 एफबीएसशन ओपन विथबैवियर
हमारे कोड के माध्यम से काम करता है अमेरिकन प्लान, पहली बार के लिए लॉग इन करने के लिए:
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];
}];
हमारे कोड से प्रस्थान करना है, जिसके बाद कोड ऊपर openWithBehavior के बाद विफल रहता है:
[[FBSession activeSession] closeAndClearTokenInformation];
मैं शुरू में openActiveSessionWithReadPermissions बजाय उपयोग कर रहा था 3.1 डॉक्स में निर्धारित अनुसार, OpenBithBehavior, जो क्रैश नहीं होता है लेकिन एफबी ऐप/सफारी से वापस स्विच करने वाला ऐप काम नहीं करता है। शायद प्रत्यय की आवश्यकता के कारण? यदि ऐप स्विचिंग को ठीक करना और उस पर वापस जाना सबसे आसान होगा, तो कृपया सलाह दें।
धन्यवाद।
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];
}
मैं:
, मैं कहाँ करने के लिए नहीं मिला और क्यों इस कोड लिखने । और मैंने इसे खोलने से पहले लिखा था विथबैथवियर अभी भी इसे ओपन विथबैवियर – Heena
में क्रैश हो गया है ऊपर दिया गया पहला स्निपेट फेसबुक क्लास से है जो त्रुटि को फेंक रहा था। मैंने इसे केवल उस घटना में जोड़ने के लिए शामिल किया जो हो रहा था। मैं आगे बढ़ गया और हमेशा एक नया सत्र बनाने से पहले सक्रिय सत्र के लिए चेक जोड़ने और इसे बंद करने के बाद अपना कोड जोड़ा। – leontx