CoreData 的簡單使用__ 03.表之間的關聯(lián)

1.我們在 Company.xcdatamodeld 里面新建一張表 Department,里面添加幾個字段。


圖1

2.然后我們在Employee 表里面設置關聯(lián)。


圖2

3.最后我們生成模型文件,如圖:



4.弄好這些后 我們來看看如何使用:

(1)首先創(chuàng)建上下文 這里就不多復述了 詳見《CoreData 的簡單使用__ 01》

(2)然后我們來添加信息 兩個員工,一個屬于iOS 一個屬于Android

-(void)addEmployee{

//創(chuàng)建兩個部門ios android

Department *iosDepart = [NSEntityDescription insertNewObjectForEntityForName:@"Department"inManagedObjectContext:_context];

iosDepart.name=@"iOS";

iosDepart.departNo=@"0001";

iosDepart.createDate= [NSDatedate];

Department *andrDepart = [NSEntityDescription insertNewObjectForEntityForName:@"Department"inManagedObjectContext:_context];

andrDepart.name=@"android";

andrDepart.departNo=@"0002";

andrDepart.createDate= [NSDatedate];

//創(chuàng)建兩個員工對象zhangsan屬于ios部門lisi屬于android部門

Employee *zhangsan = [NSEntityDescription insertNewObjectForEntityForName:@"Employee"inManagedObjectContext:_context];

zhangsan.name=@"zhangsan";

zhangsan.height=@(1.90);

zhangsan.birthday= [NSDate date];

zhangsan.depart= iosDepart;

Employee *lisi = [NSEntityDescription insertNewObjectForEntityForName:@"Employee"inManagedObjectContext:_context];

lisi.name=@"lisi";

lisi.height=@2.0;

lisi.birthday= [NSDate date];

lisi.depart= andrDepart;

//直接保存數(shù)據(jù)庫

NSError*error =nil;

[_context save:&error];

if(error) {

NSLog(@"%@",error);

}

}

(3) 添加完信息后我們來讀取下:

-(void)readEmployee {

// 1.FectchRequest抓取請求對象

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];

// 2.設置過濾條件

NSPredicate*pre = [NSPredicate predicateWithFormat:@"depart.name = %@",@"iOS"];

request.predicate= pre;

// 4.執(zhí)行請求

NSError*error =nil;

NSArray*emps = [_context executeFetchRequest:requesterror:&error];

if(error) {

NSLog(@"error");

}

//NSLog(@"%@",emps);

//遍歷員工

for(Employee*emp in emps) {

NSLog(@"名字%@部門%@",emp.name,emp.depart.name);

}

}

運行結果如下:

到這里CoreData的簡單使用就差不多結束了,相信大家掌握這些基本的用法后對CoreData也能夠入門了,如果想系統(tǒng)的學習CoreData的同學可以 買 《Core Data 應用開發(fā)實踐指南》 這本書看看。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容