2012-01-20 9 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

はい、nilのチェックだけを追加してください。最初にデバイス上でアプリを起動すると、userDefaultsに保存された日付はありません。 –

+0

ええと、ありがとう、私のアプリが日付ピッカーでタブをクリックするとクラッシュする理由があります。どのようにしてnilをチェックするのですか?初心者の質問に申し訳ありません。 – John

関連する問題