我的表上有一个连接到NSArrayController的表。我知道如何挂钩绑定并控制拖动到arraycontroller的删除操作。但我需要做的是从核心数据中获取表中所选行的特定属性,如果需要某些条件,则执行并删除该行。我也删除了删除部分。
我可以获得所选行:
NSUInteger packageIndex = [self.packagesTableView selectedRow];
NSArray *selectedObjects = [[self.meteorPakcagesArrayController arrangedObjects] objectAtIndex:packageIndex];
NSLog(@"pckg: %@", selectedObjects);
在日志中我得到了:
2014-02-15 08:01:43.067 Orbit[10320:303] pckg: <MeteorPackage: 0x6080000adaa0> (entity: MeteorPackage; id: 0x608000221060 <x-coredata://7BDCF290-6A40-4BAD-A8BE-5819CCB99DEA/MeteorPackage/p118> ; data: {
name = "preserve-inputs";
project = "0x608000220fe0 <x-coredata://7BDCF290-6A40-4BAD-A8BE-5819CCB99DEA/Project/p116>";
type = meteor;
})
但我无法弄清楚如何从数组中获取特定属性。我想得到名字和类型。我试过像这样拉出数据:
MeteorPackage *pckg = [selectedObjects objectAtIndex:0];
NSLog(@"pckg: %@", pckg);
但是我收到以下错误:
-[MeteorPackage objectAtIndex:]: unrecognized selector sent to instance 0x6080002a1aa0
我显然犯了一个菜鸟错误,因为我不熟悉Objective-c和核心数据。那么如何获得这些属性呢?
答案 0 :(得分:1)
您需要替换此
NSArray *selectedObjects = [[self.meteorPakcagesArrayController arrangedObjects] objectAtIndex:packageIndex];
NSLog(@"pckg: %@", selectedObjects);
用这个
MeteorPackage *selectedPackage = [[self.meteorPakcagesArrayController arrangedObjects] objectAtIndex:packageIndex];
NSLog(@"pckg: %@", selectedPackage);
因为objectAtIndex方法已经返回了MeteorPackage对象...而不是数组