2009-06-09 8 views
3

私はUIDatePickerを使ってユーザーの誕生日を尋ねるアプリケーションを持っており、それを標準のユーザーデフォルトに保存しています。アプリケーションが再び開かれたとき、私は再び日付を取得し、その日付にUIDatePickerを設定したいが、それはクラッシュしていて、日付を受け付けていない。 2009年6月8日の形式で保存されています。UIDatePickerとNSDate

どうすればよいですか?これは私が今それをしようとしている方法です。

- (void)viewWillAppear:(BOOL)animated { 
    birthDate = [Preferences getBirthDate]; 
    if (birthDate == nil) { 
     [datePicker setDate:[NSDate date] animated:NO]; 
    }  
} 

マイユーザー県メソッドが自分のクラスで次のようになります。事前に

+ (NSDate *)getBirthDate { 
    // Geting via user defaults.... 
    if ([[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"]) 
     return [[NSUserDefaults standardUserDefaults] objectForKey:@"DOB"]; 
    else { 
     return nil; 
    } 
} 

+ (BOOL)setBirthDate:(NSDate *)bDate { 
    //Setting via user defaults 
    [[NSUserDefaults standardUserDefaults] setObject:bDate forKey:@"DOB"]; 
    return [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

感謝。

答えて

1

コードからdatePickerの日付を生年月日に設定することはありません。ここで

- (void)viewWillAppear:(BOOL)animated { 
NSDate *birthDate = [Preferences getBirthDate]; 
if (birthDate == nil) { 
    birthDate = [NSDate date]; 
} 

datePicker.date = birthDate; 

}

+0

感謝です!これを試してみてください私は[datePicker setDate:birthDate]を使って日付を設定しようとしていました。あなたが望むものに日付を設定しないと、その方法は何をしますか? – Xcoder

+0

[datePicker setDate:birthDate]はdatePicker.date = birthDateと同じことです。主な違いは、birthDateがコード内でnilと等しくない場合、datePickerの日付が設定されないことです。 –

+0

はい、私は知っています。私は[datePicker setDate:birthDate]がクラッシュしていたので、コメントアウトしました。しかし、何らかの理由でdatePicker.dateはそうしませんでした。非常に奇妙な。 – Xcoder

1

objDatePickerは日付ピッカーオブジェクト、

NSDateFormatter *formate = [[NSDateFormatter alloc] init]; 
    [formate setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; 
    NSTimeZone *zone=[NSTimeZone defaultTimeZone]; 
    [formate setTimeZone:zone]; 
    NSDate *date = [formate dateFromString:timeTextField.text]; 
    NSLog(@"Output :%@",date); 
    [objDatePicker setDate:date];