私の問題は解決するのが難しくないと思います。私は何かを逃しなければならない。私はユーザーがFacebookにログインできるようにアプリケーション設定でオン/オフスイッチを使ってFacebookからログアウトするオプションがあります。 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にスイッチを切り替えた場合、彼はFacebookのからログアウトする必要があるということです。彼がログアウトした後、スイッチはOFFに戻ります。ですから、スイッチのデフォルト値をOFFにします。 NOのブール値のデフォルト以来
(OFF)私は、ユーザーがチェックすることにより、アプリケーションの設定で上にスイッチを投入しているのであれば、私はapplicationWillEnterForeground:
にチェックNSUserDefault
のregisterDefaults:
を使用する必要はありません考えていますこれは:
// 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へのログイン後、何らかの理由でスイッチをオンにすることがあります。 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時間修正しようとしていますが、それ以上は進めません。