如何将NSArray中的数据插入到核心数据中

时间:2012-04-23 10:27:07

标签: iphone objective-c sqlite core-data nsmanagedobject

我有NSArray名为namesArray

我需要使用namesArray存储coredata中存在的所有名称。

我如何实现这一目标?

我们是否需要使用sqlite manager创建任何数据库,如'names.sqlite'

2 个答案:

答案 0 :(得分: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. 假设您创建了一个名称为contacts的实体描述。通过数组中项目数的计数,为名为name的列添加每个对象(我假设您已经创建了该列)。

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

编辑:正如Ondra所说,我之前的解决方案只会添加最后一个元素。使用以下内容进行添加:Adding NSMutableArray in CoreData感谢Ondra Peterka

答案 1 :(得分:1)

我认为iNoobs的回答不起作用 - 循环会多次覆盖该值(只保存姓氏)。在每种情况下阅读教程都是个好主意。 也许您正在寻找的答案是:Saving an NSMutableArray to Core Data

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

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

稍后使用以下方法检索:

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

当然,NSUserDefaults仅适用于少量数据。

祝你好运;)