ios/objective-c/core-data:如何在 NSManagedObject 中将关系显示为 属性
ios/objective-c/core-data: How to show relationship as property in NSManagedObjects
我有两个实体,并且刚刚在它们之间创建了 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
这类似于关系
在 Objective-C 中,您不能在声明类型之前使用它。要解决此问题,您可以通过将这些行放在 #import
语句下方和第一个 @interface
.
上方来使用 类 的前向声明
@class Items;
@class Notes;
如果您发布的代码不能代表您的实际文件结构(我假设不是),您必须将 Items
的 @class
语句放在 Notes.h 文件和 Items.h 文件中 Notes
的 @class
语句。
我有两个实体,并且刚刚在它们之间创建了 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
这类似于关系
在 Objective-C 中,您不能在声明类型之前使用它。要解决此问题,您可以通过将这些行放在 #import
语句下方和第一个 @interface
.
@class Items;
@class Notes;
如果您发布的代码不能代表您的实际文件结构(我假设不是),您必须将 Items
的 @class
语句放在 Notes.h 文件和 Items.h 文件中 Notes
的 @class
语句。