如何将从获取的结果控制器获取的NSManagedObject分配给实体?

时间:2014-12-09 21:37:44

标签: ios objective-c iphone core-data

我有一个我从.model文件创建的模型类,转到编辑器>为我的名为Target的实体创建NSManagedObject子类。

我想获取Table视图控制器中的第一个Target对象,并获取该实体的某个特定属性。

现在我知道如何获取托管对象:

NSIndexPath *indexPath = [NSIndexPath indexPathForItem:0 inSection:0];
NSManagedObject *record = [fetchedResultsController objectAtIndexPath: indexPath];

但是现在我想要实体对象,我可以从...像target.body

获取其属性值
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Target : NSManagedObject

@property (nonatomic, retain) NSString * body;

这是实体类..

感谢

2 个答案:

答案 0 :(得分:0)

您的代码已经返回正确的对象类型。

您只需要给编译器一个提示,即调用

[fetchedResultsController objectAtIndexPath:indexPath];

实际上将返回Target的实例。


您只需要声明正确的变量类型

Target *record = [fetchedResultsController objectAtIndexPath:indexPath];

显然要编译这个,你需要把标题放在想要使用的文件的顶部Target

#import "Target.h"

答案 1 :(得分:0)

record是一个NSManagedObject。如果您在Target上执行了一次提取,那么该记录不应该只是一个NSManagedObject,它也应该是一个继承自NSManagedObject的Target。因此,而不是NSManagedObject *record =Target *record =。请务必致电#import "Target.h",然后您就可以致电record.body