如何通过 CoreData 在数据库表中重新加载对象数组
Posted
技术标签:
【中文标题】如何通过 CoreData 在数据库表中重新加载对象数组【英文标题】:How to array objects reload in DataBase Table by CoreData 【发布时间】:2016-12-08 12:31:51 【问题描述】:我有一个这样的数组列表:
(
"08-12-2016, Thursday, Greg",
"15-12-2016, Thursday, Greg",
"22-12-2016, Thursday, Greg",
"08-12-2016, Thursday, tug"
)
这个数组列出了如何使用 coredata 在数据库表中重新加载
我想在数据库表中重新加载此数据
我该怎么做。我尝试了很多次,但没有在数据库表中插入数组数据。请帮忙
【问题讨论】:
您能分享一下您尝试过的代码以及您遇到的问题吗? 所以你想在Coredata中插入数据。有什么问题? 您的数据模型是什么样的?如果能分享截图就太好了。据我所知,除非您将数组序列化并将其存储为 NSData 数据类型,否则您无法将数组存储在 CoreData 中。为此,我将拥有一个 PillDatabase 和 Pill 实体,并为它们提供多对一关系。 我的问题已经解决了请在下面显示我发现了这个问题:) 【参考方案1】:完美的作品
long int counts=[resultss count];// resultss is a array list
for(int i=0;i<counts;i++)
NSArray*foos = [[resultss objectAtIndex:i] componentsSeparatedByString:@","];
NSString*date_name = [foos objectAtIndex:0];
NSString*day_name = [foos objectAtIndex:1];
NSString*name_name = [foos objectAtIndex:2];
NSLog(@"date_name %@",date_name);
NSLog(@"day_name %@",day_name);
NSLog(@"name_name %@",name_name);
//new device
NSManagedObjectContext *context = [self managedObjectContext];
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Cal" inManagedObjectContext:context];
[newDevice setValue:date_name forKey:@"date"];
[newDevice setValue:day_name forKey:@"day"];
[newDevice setValue:name_name forKey:@"pillname"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error])
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
【讨论】:
以上是关于如何通过 CoreData 在数据库表中重新加载对象数组的主要内容,如果未能解决你的问题,请参考以下文章
在重新加载文档之前,如何在 OS X 上的 iCloud 中检测对 Core Data 文档的更改?
CoreData:在返回 UITableView 之前重新加载数据