2012-01-19 11 views
0

私は非常に新しいメモリ管理です。日付ピッカーの日付の保存に関する質問があります。これは私が入力したテキストを保存するために使用するコードです:iOS:日付ピッカーの設定を保存する

NSString *filePath = [self dataFilePath]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { 
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath]; 
    event1Field.text = [array objectAtIndex:0]; 
    event2Field.text = [array objectAtIndex:1]; 
} 

どのように私はピッカーではなく、入力されたテキストよりも、日付、日付を保存するためにこれを編集しますか?また、viewDidLoadメソッドもどのように編集するのですか? Iこのような存在で、通常は単に入力ピッカーのデータを、:

- (void)viewDidLoad { 
    NSDate *now = [NSDate date]; 
    [datePicker setDate:now animated:YES]; 
} 

しかし、私は、私はそれが状態を保存していますにロードについては行くだろうかどうかはわかりません。申し訳ありませんが、これらがばかな質問であれば、私はまだかなり新しいものです。

ありがとうございました!

答えて

3

データを保持する最も簡単な方法は、Foundationフレームワークが提供するNSUserDefaultsを使用することです。これは、基本的には少量のデータを保存できるキーバリューストアです。

まず第一に、日付ピッカーからデータを保存すると、これに似た何かになります。

// NSUserDefaults is a singleton instance and access to the store is provided 
// by the class method, +standardUserDefaults 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

// Let's pull the date out of our picker 
NSDate *selectedDate = [self.datePicker date]; 

// Store the date object into the user defaults. The key argument expects a 
// string and should be unique. I usually prepend any key with the name 
// of the class it's being used in. 
// Savvy programmers would pull this string out into a constant so that 
// it could be accessed from other classes if necessary. 
[defaults setObject:selectedDate forKey:@"DatePickerViewController.selectedDate"]; 

を、我々は戻って、このデータを取得し、当社の日付ピッカーを移入するときに今、私たちは以下のような何かを行うことができます...

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Get the date. We're going to use a little shorthand instead of creating 
    // a variable for the instance of `NSUserDefaults`. 
    NSDate *storedDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"DatePickerViewController.selectedDate"]; 

    // Set the date on the date picker. We're passing `NO` to `animated:` 
    // because we're performing this before the view is on screen, but after 
    // it has been loaded. 
    [self.datePicker setDate:storedDate animated:NO]; 
} 
+0

【こちら】(http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/)「SA [ 'NSUserDefaults'](HTTPのための優れた視覚的なチュートリアル://開発者。/com/reference/reference.html)。 – darvids0n

+0

素晴らしいです、本当にありがとうMark!しかしもう1つの質問ですが、NSUserDefaultsのコードの最初のブロックは、どこでviewDidLoadメソッドに置くべきですか? – John

+1

これは達成しようとしているユーザーエクスペリエンスによって異なります。あなたの状態を保存するUIにいくつかのボタンがあるかもしれません。ボタンによってトリガーされるアクションでこれを実行できます。 –

関連する問題