我有NSArray
名为namesArray
。
我需要使用namesArray
存储coredata
中存在的所有名称。
我如何实现这一目标?
我们是否需要使用sqlite manager创建任何数据库,如'names.sqlite'
?
答案 0 :(得分:1)
不,您不需要使用经理创建names.sqlite
。您应该阅读网络上的一些教程,例如:Here或Here。
您基本上需要以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 Context
和Managed 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仅适用于少量数据。
祝你好运;)