当前位置:  开发笔记 > 前端 > 正文

如何在核心数据实体中手动添加数据

如何解决《如何在核心数据实体中手动添加数据》经验,为你挑选了1个好方法。

我是Core Data第一次工作.我刚刚创建了一个EntityAttributes该实体.我想添加一些行作为数据(你可以说我想在表中添加数据).

在我使用之前Sqlite,我会使用Terminal.但在这里,Core Data我无法找到手动添加数据的方法.我只是想添加数据Context并将其显示在一个UITableView.我已经完成了文档,Core Data但它没有解释如何手动添加数据,虽然它解释了我如何以编程方式添加它.但我不需要以编程方式执行此操作.我想手动完成.



1> RoLYroLLs..:

我对CoreData也很新,并且正在为此寻找解决方案.我很高兴在这里找到一篇文章:http://iphoneinaction.manning.com/iphone_in_action/core-data,了解如何获取CSV文件并导入数据(查找核心数据,第5部分:预填充数据).

这是我使用的代码:

-(void)addData
{
  NSString *paths = [[NSBundle mainBundle] resourcePath];
  NSString *bundlePath = [paths stringByAppendingPathComponent:@"file.csv"];
  NSString *dataFile = [[NSString alloc] initWithContentsOfFile:bundlePath];
  NSArray *dataRows = [dataFile componentsSeparatedByString:@"\n"];
  [dataFile release];
  MyEntity *myMO;

for (int i = 0 ; i < [dataRows count] ; i++) { NSLog(@"Added: %d",i); myMO = (MyEntity *)[NSEntityDescription insertNewObjectForEntityForName:@"MyEntity" inManagedObjectContext:[self managedObjectContext]]; [myMO setAttrib1:[NSNumber numberWithInt:i+1]]; [myMO setAttrib2:[dataRows objectAtIndex:i]]; [self saveAction]; } }

我只有一列,所以我不需要所有的代码.这是文章中的代码.如果没有意义,请尝试查看文章.

CSV文件:

1,A$20,Australian Dollars,20,aussie-20.png
2,R$20,Brazilian Reals,20,brasil-20.png

码:

- (void)setupCards {
 NSString *paths = [[NSBundle mainBundle] resourcePath];
 NSString *bundlePath = [paths stringByAppendingPathComponent:@"cards.csv"];
 NSString *dataFile = [[NSString alloc] initWithContentsOfFile:bundlePath];
 NSArray *dataRows = [dataFile componentsSeparatedByString:@"\n"];
 [dataFile release];
 Card *card;
 for (int i = 0 ; i < [dataRows count] ; i++)
 {
  NSArray *dataElements = [[dataRows objectAtIndex:i] componentsSeparatedByString:@","];
  if ([dataElements count] >= 4)
  {
   card = (Card *)[NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:[self managedObjectContext]];
   [card setId:[NSNumber numberWithInt:i]];
   [card setName:[dataElements objectAtIndex:1]];
   [card setType:[dataElements objectAtIndex:2]];
   [card setWorth:[NSNumber numberWithInt:
   [[dataElements objectAtIndex:3] intValue]]];
   [card setImages:[NSSet setWithObject:
   [self setupCardPic:[dataElements objectAtIndex:4]]]];
   [self saveAction:self];
  }
 }
}


回答你的评论:no i want to add data manually, similar to what we do in sqlite through terminal or in sql server using sql query.下载FireFox并搜索名为的附加工具SQLITE MANAGER.它允许您打开任何SQLITE数据库,甚至是您的应用程序创建的数据库.SQLITE MANAGER是SQLITE数据库的GUI,类似于MS SQL Server Management Studio较少的功能.您可以通过它查看,编辑和添加数据,如果您打算通过Core Data使用数据库,我建议您通过此工具添加数据.您甚至可以将此工具用于您通常通过终端创建的SQLITE数据库(这是我在需要时执行的操作,以及何时不需要使用MS SQL).

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有