0

私はばかげたことに立ち往生しています。このアプリは OSX コアデータ アプリです。日付を操作するアクション シートを呼び出しています。シートを閉じた後、選択した日付が画面に正しく表示されます。ただし、日付を保存する方法がわかりません。

どんな助けでも感謝します。これは、AppDelegate.m で作業しているコードです。

NSDate *theDate = [self.purchaseDatePicker dateValue];
    if (theDate)
    {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        NSString *formattedDateString;

        [formatter setDateStyle:NSDateFormatterMediumStyle];
        [formatter setTimeStyle:NSDateFormatterNoStyle];

        formattedDateString = [formatter stringFromDate:theDate];

        [self.purchaseDate setStringValue: formattedDateString];
        self.item.purchaseDate = theDate;
        [self.item setPurchaseDate:theDate];
        [self.item setPurchaseDate:self.item.purchaseDate];

        NSLog(@"theDate is %@", theDate); <-- this is fine.
        NSLog(@"item.purchaseDate is %@", self.item.purchaseDate); <-- this returns NULL

        NSError *error = nil;
        NSManagedObjectContext *moc = _coreDataController.mainThreadContext;
        if (![moc save:&error])
        {
            [[NSApplication sharedApplication] presentError:error];
        }
            }
}
4

1 に答える 1

0

ここでの回答は非常に役に立ちましたが、この投稿は本当に考えさせられました. 今日、コードは次のようになり、うまく機能します!!

1.

[itemArrayController setValue: [DatePicker1 dateValue] forKeyPath: @"selection.date1"];

2.

  if ([itemArrayController valueForKeyPath: @"selection.date1"] == NULL) {
        date1 = [NSDate date];
        [datePicker1 setDateValue: date1];
    } else {
        [datePicker1 setDateValue: [itemArrayController valueForKeyPath: @"selection.date1"]];
        date1 = [itemArrayController valueForKeyPath: @"selection.date1"];
    }
于 2013-04-17T00:12:27.250 に答える