1

我有一个NSArraynamesArray.

我需要存储所有存在于namesArrayusing中的名称coredata

我如何做到这一点?

我们是否需要像'names.sqlite'使用 sqlite manager 一样创建任何数据库?

4

2 回答 2

1

不,您不需要创建names.sqlite使用管理器。您应该阅读一些在网上找到的教程,例如:HereHere

您基本上需要以valueForKey格式保存在数据模型中。

   //Coredata saving
 self.theAppDel=[[UIApplication sharedApplication] delegate];
 NSManagedObjectContext*context=[self.theAppDel managedObjectContext];
 NSManagedObject*object=[NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];
 NSError*error=nil;

 [object setValue:[namesArray objectAtIndex:0] forKey:@"name"]; //for saving first name

1.创建你的 appdelegate 的一个实例。

2.访问您的Managed Object ContextManaged Object

3.假设您创建了一个带有姓名联系人的实体描述。根据数组中的项目数,为名为的列添加每个对象name(我假设您已经创建了该列)。

这是一个简短的示例,但您应该阅读教程并阅读苹果的文档。

编辑:正如 Ondra 提到的,我之前的解决方案只会添加最后一个元素。使用以下添加:在 CoreData 中添加 NSMutableArray感谢Ondra Peterka

于 2012-04-23T10:47:44.353 回答
1

我认为 iNoobs 的答案不起作用 - 循环会多次覆盖该值(只会保存姓氏)。在每种情况下,阅读教程都是个好主意。也许您正在寻找的答案在这里:将 NSMutableArray 保存到核心数据

另外......我知道你明确地说“保存到核心数据”,但以防万一 - 你也可以使用不同的存储,如NSUserDefaults

[[NSUserDefaults standardUserDefaults] setObject:namesArray forKey:@"namesArray"];

并稍后使用以下方法检索它:

myArray= [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"namesArray"]];

当然 NSUserDefaults 只用于少量数据。

祝你好运 ;)

于 2012-04-23T12:05:51.160 回答