我正在尝试将[Sectioninfo Objects]
的输出存储到数组
NSArray *currentCategory = [sectionInfo objects];
虽然我在NSLOG上的OutPut如下:
"<Catalogue: 0x6da1d20> (
entity: Catalogue;
id: 0x6da1090 <x-coredata://894839B1-B485-4D64-8D46-99E388F00225/Catalogue/p3> ;
data: {\n comments = nil;\n
email = nil;\n
name = Shorts;\n
phone = 0;\n
picture = <ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 0001>;\n
price = 77;\n
shop = Shop;\n
website = nil;\n})"
我只对数据部分感兴趣
我如何提取数据部分? &安培;然后我可以将它添加到NSArray
感谢您的帮助
答案 0 :(得分:0)
由于问题标记为核心数据,我假设您正在讨论从NSFetchedResultsController
通过
id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
如果是这种情况,那么section info协议指定objects
返回该部分中的对象数组。这个对象数组将保存实际对象,就像从执行提取时获得的对象数组一样。
因此,您可以像访问任何其他对象一样访问它们。希望您有一个子类,因此您可以通过适当的属性访问该对象。
否则,您可以使用KVC方法。从您的日志输出中,我假设data
是您对象的属性(可能是字符串)。
NSArray *sectionObjects = [sectionInfo objects];
NSMutableArray *dataArray = [NSMutableArray arrayWithCapacity:sectionObjects.count];
for (NSManagedObject *object in sectionObjects) {
NSString *data = [object valueForKey:@"data"];
[dataArray addObject:data];
}
或者,你可以更简洁地做到:
NSArray *dataArray = [[sectionInfo objects] valueForKey:@"data"];
返回一个数组,其结果是将键应用于接收器中的每个对象。