【发布时间】:2011-04-05 18:08:57
【问题描述】:
这里是核心数据的新手:
给定一位患者,我想列出该患者的所有过敏症。
实体Patient 具有在对象模型中定义的一对多关系allergies。
子实体Allergy 还定义了反向关系patient。
Allergy 有一个属性,description 的值是一个 NSString。
我想得到allergies关系返回的NSSet,按description排序,放入一个数组实例变量中,该变量将映射到表格视图。
代码:
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSSet *unorderedAllergies = [selectedPatient valueForKey:@"allergies"];
NSArray *sortedArray = [unorderedAllergies sortedArrayUsingDescriptors:sortDescriptors];
[allergiesArray addObjectsFromArray:sortedArray];
注意:selectedPatient 是从前一个控制器传入的父 NSManagedObject Patient 的实例变量。 allergiesArray 是我要映射到表格视图的数组。
问题发生在:
NSArray *sortedArray = [unorderedAllergies sortedArrayUsingDescriptors:sortDescriptors];
调试器在此行显示EXEC_BAD_ACCESS,应用程序崩溃。我的猜测是它与 Core Data 延迟加载的相关对象(即“故障对象”)有关。
非常感谢任何帮助。
【问题讨论】:
标签: objective-c cocoa-touch core-data ios4