1

为什么在单元测试中尝试使用 Core Data 托管对象 XCode 生成的类时出现“无法识别的选择器”?

也就是说,在测试用例中,我必须将方法作为核心数据托管对象的实例(我使用的是 Xcode 4 生成的托管对象)。为了帮助保持测试的轻量级,我可以自己创建对象(不使用核心数据框架)。看起来不错,但是当我尝试使用属性时,我得到“无法识别的选择器”。

我猜的问题是:

  1. 为什么我会得到这个“无法识别的选择器”?
  2. 如何修改我正在做的事情以创建核心数据托管对象的轻量级版本,以用作单元测试中被测方法的输入?

托管对象的代码示例。例如,这里使用属性“title”会触发问题:

@interface WEView : NSManagedObject {
  @private
}
  @property (nonatomic, retain) NSString * title;
@end


#import "WEView.h"
@implementation WEView
   @dynamic title;
@end
4

1 回答 1

3

@dynamic处理器命令告诉编译器这些方法将在运行时提供。托管对象上下文提供了基于从托管对象模型中获取的信息的方法。没有上下文,类就没有实际的方法,也无法响应选择器。

于 2011-04-26T18:31:48.983 回答