insertNewObjectForEntityForName返回不同​​的类型?

时间:2014-07-09 06:15:00

标签: ios objective-c core-data

我正在基于类创建一个新对象。在对象模型中,类使用DocuSignConfig作为类型:

[NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([DocuSignConfig class]) inManagedObjectContext:self.managedObjectContext]

然而,在我的单元测试中,这失败了:

XCTAssertTrue([config isMemberOfClass:[DocuSignConfig class]]);

当我在调试器中运行单元测试时,第一次调用会得到一个奇怪的结果。它的DocuSignConfig_DocuSignConfig_ *

代码有效,所有属性都在那里......为什么单元测试会失败呢?

1 个答案:

答案 0 :(得分:0)

Core Data在运行时创建NSManagedObject子类的动态子类,为所有@dynamic属性提供实现。

isMemberOfClass:方法仅测试实例是否是该类的实例。相反,使用isKindOfClass:方法,当实例是提供的类的子类时,该方法也返回true。