给出以下代码(使用magicrecord进行coredata提取):
// Get all of our apps.
NSArray * applications = [Application MR_findAllInContext: [NSManagedObjectContext MR_context]];
Application * application = [applications firstObject];
NSLog(@"Test: %@", application.applicationId);
NSArray * applicationIds = [applications valueForKey: @"applicationId"];
NSLog(@"Application ids: %@", applicationIds);
我得到以下日志:
Test: 586001240 Application ids: ( "<null>", "<null>" )
我知道applications
数组包含两个条目。每个都有一个独特的applicationId
属性。我不明白为什么对valueForKey
的调用会给我两个空值?相反,我应该得到两个NSNumber对象。
我最近发现了关于valueForKey(以前获取唯一条目我会使用枚举并将条目添加到数组中)。我试图使用valueForKey来提高可读性。显然我不是正确理解的东西。关于我哪里出错的提示?
编辑 - 更多详情:
Application
类是通过核心数据模型生成的。界面定义为:
@interface Application : NSManagedObject
@property (nonatomic, retain) NSNumber * applicationId;
@property (nonatomic, retain) NSString * name;
@end
答案 0 :(得分:0)
想出来 - 我的问题非常愚蠢。
我不得不改变:
[Application MR_findAllInContext: [NSManagedObjectContext MR_context]];
成为:
[Application MR_findAllInContext: [NSManagedObjectContext MR_defaultContext]];
解决了这个问题。