【发布时间】:2015-02-28 07:55:33
【问题描述】:
我有一个 NSManagedObject。当我创建一个实例时,它意外地使 isKindOfClass 方法失败。
NSEntityDescription *entity = [NSEntityDescription entityForName:@"DayModel" inManagedObjectContext:context];
DayModel *day = [[DayModel alloc] initWithEntity:entity insertIntoManagedObjectContext:context];
if ([day isKindOfClass:[DayModel class]]) {
NSLog(@"True");
} else {
NSLog(@"False");
}
输出:
False
我添加了以下代码:
Class objectClass = [day class];
Class classClass = [DayModel class];
在调试器中查看它是我发现的:
打印classClass 的描述会打印“DayModel”。
我不确定这是否相关,但 DayModel 是用 Swift 实现的。
更新
这在我的测试课程中失败了,但在 iOS 应用程序中没有。问题似乎类似于this issue。但是,我已将所有可以添加的类添加到测试目标中,但仍然失败。
【问题讨论】:
-
不确定,但这可能会有所帮助...stackoverflow.com/a/12161219/2274694
-
谢谢,我想差不多了。这在测试类中失败,但在应用程序中工作。我已经将所有类添加到目标中......
-
在模型编辑器中,类名必须是 xxx.DayModel,其中 xxx 是您的应用模块的名称。是这样吗?
-
@jrturton,您的意思是修改 xcdatamodeld 文件,选择 DayModel,然后在右侧的 Utility 面板中更改类名吗?现在它只是 DayModel,如果我像你一样更改它,建议应用程序崩溃。网上有没有可以帮助我的例子?谢谢。
-
这很有趣。崩溃怎么办?你的模块名称是什么?
标签: ios objective-c core-data restkit