iPhone:从日期选择器获取日期

时间:2012-01-20 04:43:45

标签: iphone ios xcode notifications datepicker

我写了一个应用程序,允许用户在日期选择器上输入日期,该应用程序将在该日期到来之前36小时提醒用户。我的问题出在dateFromString:。我不知道该放什么。这是代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILocalNotification *localNotif = [[UILocalNotification alloc] init];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm'/'dd'/'yyyy"];
NSDate *eventDate=[dateFormatter dateFromString: ]; 

localNotif.fireDate = [eventDate dateByAddingTimeInterval:-13*60*60];
localNotif.timeZone = [NSTimeZone defaultTimeZone];


localNotif.alertBody = @"Event tommorow!";

localNotif.alertAction = nil;

localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication]presentLocalNotificationNow:localNotif];    

return YES;

}

非常感谢任何帮助,谢谢!

编辑:这是一些额外的代码,我用它来保存他们在日期选择器上输入的日期,如果这有帮助:

- (void)viewDidLoad {
    NSDate *storedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"DatePickerViewController.selectedDate"];

    [self.datePicker setDate:storedDate animated:NO];
}

这是保存数据的方法:

- (IBAction)dateChanged:(id)sender {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSDate *selectedDate = [self.datePicker date];

[defaults setObject:selectedDate forKey:@"DatePickerViewController.selectedDate"];}

1 个答案:

答案 0 :(得分:2)

为什么你需要一个字符串? 制作完成后

[defaults setObject:selectedDate forKey:@"DatePickerViewController.selectedDate"];

您可以像

一样访问日期
NSDate* eventDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"DatePickerViewController.selectedDate"];

使用字符串对日期不太好 - 您应该关注语言环境和时间格式(12小时或24小时)等。