Objective c 从NSArray添加到核心数据模型

Objective c 从NSArray添加到核心数据模型,objective-c,cocoa,core-data,Objective C,Cocoa,Core Data,我有一个字符串数组,我想根据数组中的字符串数量向outline视图添加一定数量的行,每个行都有添加的字符串的标题 我认为这将涉及像这样在阵列中循环 for(NSString *title in array) { JGManagedObject *theParent = [NSEntityDescription insertNewObjectForEntityForName:@"projects"

我有一个字符串数组,我想根据数组中的字符串数量向outline视图添加一定数量的行,每个行都有添加的字符串的标题

我认为这将涉及像这样在阵列中循环

for(NSString *title in array) {
    JGManagedObject *theParent = 
        [NSEntityDescription insertNewObjectForEntityForName:@"projects"
                                      inManagedObjectContext:managedObjectContext];
    [theParent setValue:nil forKey:@"parent"];
    [theParent setValue:@"Project" forKey:@"name"];
    [theParent setValue:[NSNumber numberWithInt:0] forKey:@"position"];

}

不用麻烦了。树控制器位于模型(Spark正在使用的核心数据存储)和视图(您的源视图)之间。您应该从阵列添加到数据存储,而不是从阵列添加到树控制器

树控制器将拾取模型中的更改并在视图中显示更改

编辑:

(请记住,远距离调试是很困难的。)

通过垃圾收集,如果你不抓住你的物体,它们很容易从你下面被清理掉

试试这个,看看会发生什么:

for(NSString *title in array) {
    NSManagedObjectContext *moc = [self managedObjectContext];
    JGManagedObject *theParent = 
        [NSEntityDescription insertNewObjectForEntityForName:@"projects"
                                      inManagedObjectContext:moc];
    [theParent setValue:nil forKey:@"parent"];
    // This is where you add the title from the string array
    [theParent setValue:title forKey:@"name"]; 
    [theParent setValue:[NSNumber numberWithInt:0] forKey:@"position"];

}

嗯,好的。我该怎么做?我习惯于添加到树控制器。从数组中的每个字符串创建模型对象,并将其添加到托管对象上下文中。@Joshua-这是一个不错的开始!你有没有试过运行它,看看会发生什么?我对你的问题进行了编辑,使之更好。添加您看到的结果和遇到的问题。谢谢!发生的情况是,只添加了一个项,它在调试器中向我抛出了大量错误。我设置的名称在添加时实际上从未显示为默认名称。您确定要将一个表示“nil”的字符串设置为父级的值,而不是
nil
本身吗?哦。谢谢你的注意。我的意思是
nil