我正在尝试对NSManagedObject子类排序的基本测试。我设置了一个基本子类"TestClass“,它有两个属性:stringField和numberField。他们使用标准的Obj-C2.0访问协议:
@interface TestClass : NSManagedObject
@property (retain) NSString *stringField;
@property (retain) NSNumber *numberField;
@end
@implementation TestClass
@dynamic stringField;
@dynamic numberField;
@end当我试图获取这个实体的实例时,我可以根据任何一个属性进行提取。但是,如果我使用排序描述符,则numberField被称为不兼容KVC。
在模型中,我将numberField设置为Int64,但我感到困惑。我认为包装器(NSNumber)会处理KVC问题。我需要做些什么才能让这件事成功?
发布于 2009-03-21 22:13:14
一些首字母“计算机在吗?”-type问题:
这些是我可以想到的常见问题,当使用排序描述符(特别是第一个描述符)获取数据时,这些问题可能会导致这样的错误。
而且,这不会影响KVC,但是属性的属性声明应该是(copy)而不是(retain),因为它们是符合NSCopying协议的“值”类,并且可能具有可变的子类。您不希望在Core数据下面传递可变字符串并对其进行变异。(是的,可可中没有NSMutableNumber或NSMutableDate,但这并不妨碍创建MyMutableNumber或MyMutableDate子类.)
https://stackoverflow.com/questions/667936
复制相似问题