如何预先填充绑定到核心数据中的ArrayController的NSTableView(基于文档)

时间:2012-10-31 12:55:48

标签: nstableview nsmanagedobject nsmanagedobjectcontext nsarraycontroller

这是我的问题: 我有一个基于核心数据 - 文档的程序与ARC(自动参考计数); 我希望tableView在开头显示一些数据。 但我一无所获。 这就是我所做的:

1-我用Entity:MyData

制作了核心数据

enter image description here

2-然后我添加了一个NSArrayController并将其绑定到managedObjectContext和MyData

enter image description here

enter image description here

3-我将arrayController绑定到col0:

enter image description here

4-然后制作并输出并为arrayController添加@synthesize:

enter image description here

5-最后添加了这段代码:

  
      
  • (void)windowControllerDidLoadNib:(NSWindowController *)aController {

         

    [super windowControllerDidLoadNib:aController];

         

    for(NSUInteger i = 0; i< 5; i ++){

    [myArrayController add:self];
    
    [myArrayController setSelectionIndex: i];
    
    [myArrayController setValue:@"test" forKeyPath:@"selection.col0"];
    
    NSLog(@"%lu",[myArrayController selectionIndex]);
    
         

    }}

  •   

但问题是:没有任何反应,SelectionIndex显示奇怪的数字!!

enter image description here

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

一个月后没有人回答我!最后我可以处理它:

  

NSError *错误;

NSInteger count=0;

NSNumber* N=[[NSNumber alloc]initWithInt:0];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription * entityMyData  = [NSEntityDescription entityForName:@"MyData"
                                                  inManagedObjectContext:[self managedObjectContext]];

[fetchRequest setEntity:entityMyData];


count=[self.managedObjectContext countForFetchRequest:fetchRequest error:&error];



    if (count==0 ) {


        for (NSInteger i=count+1; i<RowsToAdd+count+1; i++) {

            N=@(i);

            managedObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyData"
                                                          inManagedObjectContext:[self managedObjectContext]];

            [managedObject setValue:N forKey:@"col0"];

            [managedObject setValue:N forKey:@"col1"];


        }



    }