1

最近、Xcode 4.6.3 を Xcode5 DP2 に更新しました。Xcode 4.6.3 ではすべて正常に動作していました。つまり、Viewcontroller 内には UISwitch と UIDatePicker と、「set」と「clear」という 2 つのボタンがあります。UIDatePicker から特定の時間を選択し、UISwitch の状態を「オン」に変更し、「設定」ボタンをクリックすると、選択した時間にアラームが設定されます。また、UISwitch の状態を「オフ」に変更すると、UIDatePicker は現在の時刻を表示します。それ以外の場合は、選択された時刻を表示します。これは Xcode 4.6.3 で正常に機能していました。しかし、Xcode5 DP2 に更新した後、UISwitch の状態を切り替えるたびに、UIDatePicker は現在の時刻に戻ります。つまり、UIDatePicker で現在の時刻以外の時刻を選択し、UISwitch を「オン」状態に切り替えても、UIDatePicker は元の時刻に戻ります。現在の時刻。

これは私のコードです:

-(IBAction) switchValueChanged
{
NSString *value = @"OFF";

if (switch1.on)
{
    value = @"ON";
    [[NSUserDefaults standardUserDefaults] setObject:value forKey:@"stateOfSwitch"];           

    [switch1 setOn:YES animated:YES];
      }
else
{
 [datePicker setDate:[NSDate date]];
    [[NSUserDefaults standardUserDefaults] setObject:value forKey:@"stateOfSwitch"];
           [[UIApplication sharedApplication] cancelAllLocalNotifications];
       }
 [[NSUserDefaults standardUserDefaults]synchronize];
}
4

1 に答える 1

0

私は同じ問題を抱えていました.私はそれを機能させるために多くの時間を費やしましたが、どうやらそれはxcode 5シミュレータの問題です.

デバイスで実行するだけで、nsuserdefaults が正常に機能することがわかります。

これが役立つことを願っています。

于 2013-09-29T17:21:16.090 に答える