IOS / Objective-C / Core-Data:新的Core Data对象是否带有关系对象?

时间:2018-03-20 14:13:30

标签: ios core-data

我将书籍记录从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属性。所以我的问题是当我实例化一个书籍对象时,我是否可以通过关系使用对象中的属性?

1 个答案:

答案 0 :(得分:1)

  

我的问题是,我是否也可以访问与我的对象有关系的权限的“幻像”或未实例化的托管对象?或者我是否需要在目标文件中为每个属性创建属性。

它与任何其他类型的对象完全相同。使用核心数据不会改变任何内容。

只有在代码创建新对象时才会创建新对象。 Core Data永远不会隐式或自动创建新对象。因此,如果托管对象与其他托管对象有关系,则需要创建托管对象,然后更新对象,以便它们的关系相互引用。

创建对象时,托管对象的属性可用,因此只要托管对象存在,就会存在字符串或数字属性。