首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios/objective/core-data:如何在NSManagedObjects中将关系显示为属性

ios/objective/core-data:如何在NSManagedObjects中将关系显示为属性
EN

Stack Overflow用户
提问于 2015-10-02 17:51:31
回答 1查看 99关注 0票数 0

我有两个实体,刚刚在它们之间建立了1:1的关系。这些实体有子类,但是它们现在有很多代码,所以我不想使用Xcode自动生成新的NSManagedObject子类。

相反,我认为我可以引用每个属性中的关系。我这样做了,它似乎工作了一段时间,但现在它正在抛出神秘的错误,我似乎无法摆脱它们。我已经进口了每一种产品的互惠性,但都没有帮助。有人能推荐我该怎么做吗?在此之前,非常感谢您。

代码语言:javascript
复制
Subclassed NSManagedObjects (simplified)

//Items.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Notes.h"

@interface Items : NSManagedObject
@property (nonatomic, retain) NSNumber *iid;
@property (nonatomic, retain) NSString *item;

//this is relationship
@property (nonatomic, retain) Notes *note;
//above throws error Unkown Type Name 'Notes'
@end

//Notes.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Items.h"

@interface Notes : NSManagedObject
@property (nonatomic, retain) NSNumber * nid;
@property (nonatomic, retain) NSString * note;

//this is relationship
@property (nonatomic, retain) Items *item;
//above throws error Unkown Type Name 'Item'
@end

这类似于关系。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 17:54:34

在Objective中,不能在声明类型之前使用它。要解决这个问题,可以使用类的前向声明,方法是将这些行放在#import语句下面和第一个@interface之上。

代码语言:javascript
复制
@class Items;
@class Notes;

如果已发布的代码不代表实际的文件结构(我假设不是这样),那么您必须将@class语句Items放在Notes.h文件中,而@class语句用于Notes则放在Items.h文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32913002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档