0

CoreDataに問題があります。データをNSTableViewにリンクするアレイコントローラーのセットアップがあります。

数秒ごとにコードを実行する関数があり、その中にファイルのリストを表示します

NSEntityDescription *entity = [NSEntityDescription entityForName:@"File"
                                          inManagedObjectContext:[self managedObjectContext]];

[request setEntity:entity];
NSError *error = nil;

NSArray *fetchedObjects =[_managedObjectContext executeFetchRequest:request
                                                              error:&error];

for (NSManagedObject *objectt in fetchedObjects) {
    NSLog(@"Object Name: %@", [objectt valueForKey:@"filename"]);
}
NSManagedObject *object = [fetchedObjects objectAtIndex:index];

NSLog(@"Filename: %@, Index: %ld", [object valueForKey:@"filename"], index);
NSString *imageName = [object valueForKey:@"imageName"];
NSImage *image = [object valueForKey:@"taggedImage"];

このコードを初めて実行すると、リストはテーブルの列と一致します。再度実行すると、アレイコントローラからフェッチされたものは変更されますが、テーブルビューは変更されません。そのため、もう同期していません。

テーブルと配列の同じインデックスの値は異なります。

4

1 に答える 1

0

NSArrayController同期しているかどうかを手動で確認しましたか?これにより、質問が誤って構成されているNSArrayControllerか、NSTableViewが誤って構成されているかに絞り込まれます。あなたの声明はあなたが見ていると主張していますがNSArrayController、あなたがフェッチされた単語を使うとき、私はあなたがオブジェクトを混乱させているのではないかと心配しています。

また、データは保存された状態ですか、それとも保存されていない状態ですか?その質問は、NSArrayControllerおよびからの表示にも影響しますNSTableView

于 2012-11-26T15:54:08.650 に答える