新手核心数据:
考虑到患者,我想列出该患者的所有过敏症。
实体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懒惰加载的相关对象(即“故障对象”)有关。
非常感谢任何帮助。
答案 0 :(得分:4)
description
是NSObject的方法名,返回描述该对象的字符串。它是使用NSLog记录对象时调用的方法。从NSObject继承的所有类都已经有description
方法。
不要将description
用作属性或属性名称,因为您可能无法获得预期效果。使用allegryDescription
或类似的东西将属性名称更改为不会发生冲突的内容。