最近、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];
}