제 생각에는 그 문제를 해결하기가 어렵지 않다고 생각합니다. 나는 뭔가를 놓치고 있어야합니다. 내 사용자가 페이스 북으로 로그인하게하여 애플리케이션 설정에서 켜기/끄기 스위치가있는 페이스 북에서 로그 아웃 할 수있는 옵션이 있습니다. Settings.bundle
나의 Root.plist
은 다음과 같습니다 iOS - 응용 프로그램 설정, 스위치 재설정 시도
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>DefaultValue</key>
<false/>
<key>Key</key>
<string>facebookLogoutTriggered</string>
<key>Title</key>
<string>Logout Facebook</string>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
그래서 기본적으로 난 후 기능은 사용자가 ON 스위치를 전환하면, 그는 페이스 북에서 로그 아웃해야한다는 것입니다. 로그 아웃 한 후 스위치는 다시 OFF로 전환해야합니다. 그래서 스위치의 기본 값으로 OFF가 필요합니다.
부터 NO (OFF)로 불린 기본 내가 사용하지 않아도 생각하고 NSUserDefault
의 사용자가 선택하여 응용 프로그램 설정에서에 스위치를 설정 한 경우 registerDefaults:
그래서 내가 applicationWillEnterForeground:
체크인 이 :
// Check if the user wants to logout from Facebook
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL facebookLogoutTriggered = [defaults boolForKey:@"facebookLogoutTriggered"];
// Set "Logout Facebook" setting to OFF (NO)
[defaults setBool:NO forKey:@"facebookLogoutTriggered"];
[defaults synchronize];
하지만이 코드는 작동하지 않는 것 같습니다. 대부분의 경우 작동합니다 (점검 후에 스위치가 꺼짐). 하지만 때로는 페이스 북에 로그인 한 후 어떤 이유로 스위치를 켜기로 설정할 수 있습니다. Facebook에 로그인 한 후 실행하는 코드는 다음과 같습니다.
#pragma mark - FBSessionDelegate Methods
- (void)fbDidLogin {
DLog(@"User logged in to Facebook.");
AppDelegate *appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
// Save accesstoken and expirationdate
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[appDelegate.facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[appDelegate.facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
DLog(@"defaults %@", [defaults objectForKey:@"facebookLogoutTriggered"]);
}
6 시간 동안이 문제를 해결하려고했지만 실제로는 더 이상 진행할 수 없습니다.