CoreDataの更新について多くの質問を見ました。実際、私は簡単なアプリケーション連絡先リストアプリを作成しています。これには、追加、編集、削除、および更新の機能が含まれています。ここに私の更新コードがあります。動作して更新されますが、すべての連絡先リストが更新されます。特定の連絡先のみを更新する必要があります。
- (IBAction)updatePressed:(id)sender
{
delegate = [[AppDelegate alloc]init];
delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
name2 = emailtxt1.text;
email2 = nametext1.text;
mobile2 = numbertxt1.text;
dict = [[NSMutableDictionary alloc] init];
[dict setObject:nametext1.text forKey:@"NAME"];
[dict setObject:emailtxt1.text forKey:@"EMAIL"];
[dict setObject:numbertxt1.text forKey:@"MOBILE"];
[delegate UpdateDiary:dict];
}
- (void)UpdateDiary:(NSMutableDictionary *)dictionary
{
NSLog(@"update book Details Function Entered");
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Diary"inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *mutableFetchResult = [[[self.managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy] autorelease];
if (mutableFetchResult == nil) {
NSLog(@"Fetch result error %@, %@", error, [error userInfo]);
}
for (Diary *ob2 in mutableFetchResult)
{
{
ob2.name = [dictionary objectForKey:@"NAME"];
ob2.email=[dictionary objectForKey:@"EMAIL"];
ob2.phone=[dictionary objectForKey:@"MOBILE"];
}
}
if(![self.managedObjectContext save:&error])
{
if([error localizedDescription] != nil)
{
NSLog(@"%@",error);
}
else
{
}
}
}