我将书籍记录从JSON导入NSManagedobjects,这些记录具有自己的属性,但也与其他实体,作者和出版商有关系。
对于通过JSON从云端下载的每个图书项目,我创建了一个新的bookFromServer对象。我将JSON中的属性存储到此对象中。这很简单,有title,bookid等。
但是,JSON还包含其他实体正确属于的其他信息,即出版商出版商名称,出版商地址,作者名字作者姓氏,作者出生日期等。
我的问题是,我是否也可以访问"幻像"或者与我的对象有关系的权限的未实例化的托管对象?或者我是否需要在目标文件中为每个属性创建属性。
以下是BookFromServer的NSObject文件
#import <CoreData/CoreData.h>
@class Books;
@class Authors;
@class Publishers;
@interface BookFromServer : NSObject
@property (nonatomic, retain) NSNumber * bid;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSNumber * authorid;
@property (nonatomic, retain) NSNumber * publisherid;
//this is relationship
@property (nonatomic, retain) Authors *author;
//this is relationship
@property (nonatomic, retain) Publishers *publisher;
@end
我想将作者信息存储在author.firstname之类的内容中,而不是书中单独的authorfirstname属性。所以我的问题是当我实例化一个书籍对象时,我是否可以通过关系使用对象中的属性?
答案 0 :(得分:1)
我的问题是,我是否也可以访问与我的对象有关系的权限的“幻像”或未实例化的托管对象?或者我是否需要在目标文件中为每个属性创建属性。
它与任何其他类型的对象完全相同。使用核心数据不会改变任何内容。
只有在代码创建新对象时才会创建新对象。 Core Data永远不会隐式或自动创建新对象。因此,如果托管对象与其他托管对象有关系,则需要创建托管对象,然后更新对象,以便它们的关系相互引用。
创建对象时,托管对象的属性可用,因此只要托管对象存在,就会存在字符串或数字属性。