【问题标题】:How do I assign an NSManagedObject that I get from fetched result controller to the entity?如何将我从获取的结果控制器获得的 NSManagedObject 分配给实体?
【发布时间】:2015-02-07 22:59:25
【问题描述】:

我通过编辑器从 .model 文件创建了一个模型类 > 为名为 Target 的实体创建 NSManagedObject 子类。

我想获取我在表视图控制器中拥有的第一个 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;

这是实体类..

谢谢

【问题讨论】:

    标签: ios objective-c iphone core-data


    【解决方案1】:

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

    你只需要给编译器一个提示,你的调用

    [fetchedResultsController objectAtIndexPath:indexPath];
    

    实际上将返回Target 的一个实例。


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

    Target *record = [fetchedResultsController objectAtIndexPath:indexPath];
    

    显然,要编译它,您需要将标题放在要使用 Target 的文件的顶部

    #import "Target.h"
    

    【讨论】:

      【解决方案2】:

      record 是一个 NSManagedObject。如果你在 Target 上执行 fetch,记录不应该只是一个 NSManagedObject,它还应该是一个继承自 NSManagedObject 的 Target。所以不是NSManagedObject *record = 而是Target *record =。确保您拨打#import "Target.h",您应该可以拨打record.body

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 2012-11-03
        • 2012-03-29
        • 2013-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多