我想将数据保存在核心数据中。
但保存的数据是唯一的最后数据。
我认为,重要的问题是唯一的!只要!保存了最后一个数据。
其实我不太懂英语......
我想让你理解我的问题..
这是我的代码。
正如我解释这段代码。这个项目有一个示例。 csv ,所以我将该文件分开。分离的数据由“setvalue”保存。
有什么问题?
NSString *path = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"csv"];
NSString *strText = [NSString stringWithContentsOfFile:path encoding:NSEUCKREncoding error:nil];
NSArray * array = [strText componentsSeparatedByString:@"\n"];
NSString *tempText;
int i = 0;
NSArray * temparray;
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
NSManagedObjectContext *newContext = [appDelegate managedObjectContext];
NSManagedObject *newContact;
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:newContext];
NSError *error;
for(i = 1;i<[array count]-1;i++){
tempText = [[array objectAtIndex:i]description];
temparray = [tempText componentsSeparatedByString:@"##"];
[newContact setValue:[temparray objectAtIndex:0] forKey:@"name"];
[newContact setValue:[temparray objectAtIndex:1] forKey:@"phone"];
[newContact setValue:[temparray objectAtIndex:2] forKey:@"sex"];
[newContext save:&error];
}
答案 0 :(得分:1)
我想,你应该这样说:
NSManagedObject *newContact;
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:newContext];
进入for循环的第一行
答案 1 :(得分:1)
您正在循环之外创建新实体,因此您只创建一个新实体。将此位移到for循环的顶部:
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:newContext];
像:
for(i = 1;i<[array count]-1;i++){
newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:newContext];
tempText = [[array objectAtIndex:i]description];
temparray = [tempText componentsSeparatedByString:@"##"];
[newContact setValue:[temparray objectAtIndex:0] forKey:@"name"];
[newContact setValue:[temparray objectAtIndex:1] forKey:@"phone"];
[newContact setValue:[temparray objectAtIndex:2] forKey:@"sex"];
[newContext save:&error];
}
答案 2 :(得分:0)
您必须为每个temparray插入一个新联系人。因此,您需要将newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:newContext];
移至for。