【发布时间】:2014-11-05 22:17:11
【问题描述】:
我有这个应用程序,它使用核心数据和 NSArrayController 来管理表中的一些对象。我有下面的代码来获取目录上的一些对象。我的问题是关于下面标有“处理文件”的部分。我使用 url 创建了一个新的 Video 对象,我使用我编写的自定义函数复制了元数据属性。该对象现在插入到 managedObjectContext 中。我的问题是,既然我的 NSArrayController 绑定到我的 managedObjectContext,为什么我还必须做 [self addObject:newVideo] 才能让对象显示在我的桌子上?有没有办法强制数组控制器从 managedObjectContext 中提取对象而无需手动添加它?每次添加或删除对象时都必须更新这两个东西会很麻烦。
for (NSURL *url in _dirEnumerator) {
NSNumber *_isDirectory = nil;
[url getResourceValue:&_isDirectory forKey:NSURLIsDirectoryKey error:NULL];
if (![_isDirectory boolValue]) {
if (([_mediaTypes containsObject:[[url pathExtension]uppercaseString]])) {
// Handle the files
Video *newVideo = [NSEntityDescription insertNewObjectForEntityForName:@"Video" inManagedObjectContext:_managedObjectContext];
[newVideo copyAttributesFrom:url];
[self addObject:newVideo];
NSLog(@"Inserting video: %@",[newVideo valueForKey:@"name"]);
}
}
}
【问题讨论】:
标签: objective-c cocoa core-data nsmanagedobjectcontext osx-yosemite