私はUIDatePickerからテキストと日付を保存して、その日付にUIDatePickerで戻ったらそのメモを表示するアプリを持っています。DatePicker CoreDataの作業を中止する
素晴らしい作品です! UIDatePicker日付を今日に設定するとCoreDataが機能しなくなることがわかっただけです!
このsetDate行を実行すると、コアデータが機能しなくなります。アプリはクラッシュせずに正常に動作し、データを保存しません。私がその行をコメントアウトすると、その作品は魅力的です。しかし、今日は、アプリケーションが読み込まれるときに私はUIDatePickerを持っている必要があります。
アプリケーションが起動し、私はこれを使用:
NSDate *now = [[NSDate alloc] init];
[datePicker setDate:now];
このノートをフェッチするために:
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
NSEntityDescription *testEntity = [NSEntityDescription entityForName:@"DatedText" inManagedObjectContext:self.managedObjectContext];
[fetch setEntity:testEntity];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"dateSaved == %@", datePicker.date];
[fetch setPredicate:pred];
NSError *fetchError = nil;
NSArray *fetchedObjs = [self.managedObjectContext executeFetchRequest:fetch error:&fetchError];
if (fetchError != nil) {
NSLog(@"fetchError = %@, details = %@",fetchError,fetchError.userInfo);
}
noteTextView.text = [[fetchedObjs objectAtIndex:0] valueForKey:@"savedText"];
そして、このノートを保存するには:
NSManagedObject *newDatedText;
newDatedText = [NSEntityDescription insertNewObjectForEntityForName:@"DatedText" inManagedObjectContext:self.managedObjectContext];
[newDatedText setValue:noteTextView.text forKey:@"savedText"];
[newDatedText setValue:datePicker.date forKey:@"dateSaved"];
NSError *saveError = nil;
[self.managedObjectContext save:&saveError];
if (saveError != nil) {
NSLog(@"[%@ saveContext] Error saving context: Error = %@, details = %@",[self class], saveError,saveError.userInfo);
}
投稿したコードの最後の数行は、保存できない場合に-save:メソッドがエラーを返すことを示しています。エラーが表示されますか?もしそうなら、*それは何ですか?エラーがなければ、何も保存していないとどう思いますか?どのように*正確にあなたはこれを確認していますか?また、アプリケーションの起動時にコードの最初のブロックがNSDateインスタンスをリークするように見えます。/initを解放することなく割り当てます。自動リリースされたインスタンスを返すには[NSDate date]を試してください。完了したら(日付ピッカーに渡した後に)、リリースします。 –