2012-01-20 73 views
0

我編寫了一個應用程序,允許用戶在日期選擇器中輸入日期,並且該應用程序會在日期到達前36小時提醒用戶。我的問題是在dateFromString:。我不知道該放什麼。下面是代碼:iPhone:從日期選擇器獲取日期

- (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"];} 
+0

您已將事件日期作爲字符串...它將轉換爲日期本身...以這種格式@「mm // dd/yyyy」... –

+0

噢,好的,謝謝。用戶自己輸入日期,這對我來說很棘手。你知道我將如何去獲取他們輸入的日期,並將其設置在'dateFromString'區域? – John

+0

對不起,我沒有得到它...我不知道這個確切.. –

回答

2

爲什麼你需要一個字符串? 使得

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

後,你可以訪問你的約會,就像

NSDate* eventDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"DatePickerViewController.selectedDate"]; 

使用字符串是不是很好用日期 - 你應該關心的區域和時間格式(12小時或24小時)等等

+0

哦太棒了,非常感謝。所以,我應該刪除'NSDate * eventDate = [dateFormatter dateFromString:];'並將其切換到NSDate * eventDate = [[NSUserDefaults standardUserDefaults] objectForKey:@「DatePickerViewController.selectedDate」];'? – John

+1

是的,只需添加檢查爲零。您第一次在設備上啓動應用程序時,userDefaults中不會存儲日期。 –

+0

真棒謝謝,是的,這可能是爲什麼我點擊與日期選擇器的選項卡時,我的應用程序崩潰。我如何檢查零?對於初學者問題抱歉。 – John

相關問題