我有两个数组
retrievedNamesMutableArray
retrievedImagesArray
我将其保存在核心数据中。虽然保存操作成功,但当我获取数据时,它似乎获取名称或图像,但不能同时获取两者。我假设我可以在 Core Data 中存储 NSDictionary,但似乎无法找到一种方法来做到这一点。
这就是我正在做的保存到核心数据的事情。
-(void)saveToPhoneDatabase
{
AddressBookAppDelegate *appDelegate =[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *newContact;
/* I assume this can be done but can't figure out proper process.
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc]init];
[dictionary setObject:self.retrievedNamesMutableArray forKey:@"NamesArray"];
[dictionary setObject:self.retrievedImagesArray forKey:@"ImagesArray"];
*/
for (NSString *object in self.retrievedNamesMutableArray)
{
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"AddressBook" inManagedObjectContext:context];
[newContact setValue:@"GroupOne" forKey:@"groups"];
[newContact setValue:object forKey:@"firstName"];
}
for (UIImage *img in self.retrievedImagesArray)
{
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"AddressBook" inManagedObjectContext:context];
[newContact setValue:img forKey:@"photo"];
NSLog(@"Saved the photos of Array");
}
[context save:nil];
}
这就是我获取数据的方式。
-(void)fetchFromPhoneDatabase
{
AddressBookAppDelegate *appDelegate =[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"AddressBook" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSError *error;
self.arrayForTable = [context executeFetchRequest:request error:&error];
NSLog(@"contents from core data = %@",self.arrayForTable);
[self.tableView reloadData];
}
最佳答案
您的第一个循环创建包含名称但不包含图像的对象,第二个循环创建包含图像但不包含名称的不同对象。
假设(根据您之前的问题)两个数组具有相同的大小,您应该 为每个名称/图像仅创建一个对象:
for (NSUInteger i = 0; i < [self.reterivedNamesMutableArray count]; i++) {
NSString *object = self.reterivedNamesMutableArray[i];
UIImage *img = self.reterivedImagesArray[i];
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"AddressBook" inManagedObjectContext:context];
[newContact setValue:@"GroupOne" forKey:@"groups"];
[newContact setValue:object forKey:@"firstName"];
[newContact setValue:img forKey:@"photo"];
}
关于ios - 如何在 iOS6 中的 Core Data 中保存和检索两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18574858/