如何通过 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 在数据库表中重新加载对象数组的主要内容,如果未能解决你的问题,请参考以下文章

如何重新加载用xib制作的表中的数据

在重新加载文档之前,如何在 OS X 上的 iCloud 中检测对 Core Data 文档的更改?

刷新 CoreData 表?

CoreData:在返回 UITableView 之前重新加载数据

从 segued View 返回时如何重新加载 iCarousel?

在 Xcode 中使用 CoreData 从模态视图控制器重新加载视图