我有两个实体,刚刚在它们之间建立了1:1的关系。实体有子类,但此时它们中有很多代码,所以我不想使用Xcode自动生成新的NSManagedObject子类。
相反,我认为我可以在每一个中引用与属性的关系。我这样做了,它似乎工作了一段时间,但现在它抛出了神秘的错误,我似乎无法摆脱它们。我输入了每个的倒数,但它没有帮助。谁能推荐我应该做的事情?非常感谢提前。
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
这类似于关系
答案 0 :(得分:1)
在Objective-C中,您无法在声明之前使用类型。要解决此问题,您可以通过将这些行放在#import
语句下方和第一个@interface
上方来使用类的前向声明。
@class Items;
@class Notes;
如果您发布的代码不能代表您的实际文件结构(我认为它不是),那么您必须将@class
Items
语句放入@class
Notes.h文件和Items.h文件中Notes
的{{1}}语句。