成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

IOS數(shù)據(jù)管理工具CoreData入門(mén)之雙向關(guān)系操作

移動(dòng)開(kāi)發(fā) iOS 數(shù)據(jù)管理
本文主要來(lái)介紹CoreData入門(mén)雙向關(guān)系的操作和學(xué)習(xí),根據(jù)實(shí)例的操作可以快速的去學(xué)習(xí)IOS數(shù)據(jù)庫(kù)管理工具coredata,先來(lái)看本文內(nèi)容。

IOS數(shù)據(jù)管理工具CoreData入門(mén)之雙向關(guān)系操作是本文要介紹的內(nèi)容,主要來(lái)介紹CoreData入門(mén)雙向關(guān)系的操作和學(xué)習(xí),不多說(shuō),我們先來(lái)看詳細(xì)內(nèi)容介紹。

雙向的時(shí)候,只用指定一邊,另外一邊自動(dòng)指定,比如,如果一個(gè)帳號(hào)只有一個(gè)聯(lián)系人,而一個(gè)聯(lián)系人對(duì)應(yīng)一個(gè)帳號(hào)的話,那么帳號(hào)表和聯(lián)系人表就是一一對(duì)應(yīng)的關(guān)系,將他們指定為雙向的,如下面將cnt1.act = act1; cnt2.act = cnt2;則act1.cnt和act2.cnt也是有值的。注釋掉的兩句可有可無(wú)。

刪除規(guī)則

這里將Account表下面的cnt的刪除規(guī)則設(shè)定為cascade,則在刪除act1的時(shí)候,cnt1也被刪除了。而Contact表沒(méi)有將它下面的act的刪除規(guī)則設(shè)置為cascade,在刪除cnt1的時(shí)候,act1還存在。

一對(duì)多的關(guān)系

上面假設(shè)一個(gè)帳號(hào)只有一個(gè)聯(lián)系人是不合理的,那只是一種假設(shè),一般都是一個(gè)帳號(hào)下面有很多聯(lián)系人,這就是一對(duì)多的關(guān)系,上面的兩個(gè)法則也適用于這種關(guān)系,也就是說(shuō)帳號(hào)下面的cnt設(shè)置為cascade,刪除一個(gè)帳號(hào)時(shí),它所有的聯(lián)系人也被刪除了,而聯(lián)系人表下面的act設(shè)置為nullify,當(dāng)刪除一個(gè)聯(lián)系人的時(shí)候帳號(hào)表沒(méi)有變化。

  1.  Account *act1 = [NSEntityDescription insertNewObjectForEntityForName:@"Account" inManagedObjectContext:self.managedObjectContext];   
  2.   act1.passport = @"passport1";   
  3.   act1.password = @"password1";   
  4.   Account *act2 = [NSEntityDescription insertNewObjectForEntityForName:@"Account" inManagedObjectContext:self.managedObjectContext];   
  5.   act2.passport = @"passport2";   
  6.   act2.password = @"password2";   
  7.    Contact *cnt1 = [NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:self.managedObjectContext];   
  8.  cnt1.passport = @"passport1";  
  9.   cnt1.nickname = @"nickname1";  
  10.  cnt1.act = act1;  
  11.  Contact *cnt2 = [NSEntityDescription insertNewObjectForEntityForName:@"Contact" inManagedObjectContext:self.managedObjectContext];  
  12.    cnt2.passport = @"passport2";  
  13.   cnt2.nickname = @"nickname2";  
  14.   cnt2.act = act2;  
  15. //    act1.cnt = cnt1;  
  16. //    act2.cnt = cnt2;      
  17.   [self.managedObjectContext save:nil];  
  18.   // Delete a Account  
  19.     NSFetchRequest *fr = [[NSFetchRequest alloc] init];  
  20.   NSEntityDescription *ed = [NSEntityDescription entityForName:@"Account" inManagedObjectContext:self.managedObjectContext];  
  21.   [fr setEntity:ed];  
  22.        NSArray *ary = [self.managedObjectContext executeFetchRequest:fr error:nil];  
  23.    for (Account *act in ary) {  
  24.       //NSLog(@"%@  %@  %@  %@", act.passport, act.password, act.cnt.passport, act.cnt.nickname);  
  25.          if ([act.passport isEqualToString:@"passport2"]) {  
  26.            NSLog(@"DEL passport2");  
  27.            [self.managedObjectContext deleteObject:act];  
  28.        }  
  29.    }  
  30.   [self.managedObjectContext save:nil];  
  31.   // Delete a Contact  
  32.    NSFetchRequest *fr = [[NSFetchRequest alloc] init];  
  33.    NSEntityDescription *ed = [NSEntityDescription entityForName:@"Contact" inManagedObjectContext:self.managedObjectContext];  
  34.   [fr setEntity:ed];  
  35.    NSArray *ary = [self.managedObjectContext executeFetchRequest:fr error:nil];  
  36.   NSLog(@"%d", ary.count);  
  37.    for (Contact *cnt in ary) {  
  38.        //NSLog(@"%@  %@  %@  %@", act.passport, act.password, act.cnt.passport, act.cnt.nickname);  
  39.        if ([cnt.nickname isEqualToString:@"nickname1"]) {  
  40.            NSLog(@"DEL nickname1");  
  41.            [self.managedObjectContext deleteObject:cnt];  
  42.        }  
  43.    }  
  44.      
  45.   [self.managedObjectContext save:nil];  
  46.   // From Account62     NSFetchRequest *fr = [[NSFetchRequest alloc] init];  
  47.    NSEntityDescription *ed = [NSEntityDescription entityForName:@"Account" inManagedObjectContext:self.managedObjectContext];  
  48.    [fr setEntity:ed];  
  49.    NSArray *ary = [self.managedObjectContext executeFetchRequest:fr error:nil];  
  50.    for (Account *act in ary) {  
  51.        NSLog(@"%@  %@  %@  %@", act.passport, act.password, act.cnt.passport, act.cnt.nickname);  
  52.    }  
  53.    // From Contact73     NSFetchRequest *fr = [[NSFetchRequest alloc] init];  
  54.    NSEntityDescription *ed = [NSEntityDescription entityForName:@"Contact" inManagedObjectContext:self.managedObjectContext];  
  55.    [fr setEntity:ed];  
  56.    NSArray *ary = [self.managedObjectContext executeFetchRequest:fr error:nil];  
  57.    for (Contact *cnt in ary) {  
  58.        NSLog(@"%@  %@  %@  %@", cnt.passport, cnt.nickname, cnt.act.passport, cnt.act.password);  

小結(jié):IOS數(shù)據(jù)管理工具CoreData入門(mén)之雙向關(guān)系操作的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 博客園
相關(guān)推薦

2011-06-14 14:27:02

Core DataCocoa TouchiOS

2012-04-09 09:43:49

云計(jì)算云管理

2022-05-06 12:04:24

Ansible管理工具

2010-05-28 14:14:10

ibmdwDBA

2022-08-03 08:02:46

PDM工具Python

2022-06-28 16:30:26

管理工具Python

2022-07-01 09:17:14

Pythonpoetry工具

2014-06-20 10:03:23

大數(shù)據(jù)管理工具

2011-10-18 10:20:13

Data ExplorSQL AzureSQL Server

2011-08-12 10:38:09

MongoDB

2014-07-15 12:30:39

關(guān)系管開(kāi)源工具

2020-10-30 11:18:47

網(wǎng)絡(luò)技術(shù)工具

2020-09-30 14:05:22

網(wǎng)絡(luò)管理

2009-04-24 21:13:45

服務(wù)器虛擬化Vmware

2012-12-06 11:31:40

虛擬化

2010-11-16 10:00:59

2023-08-04 00:06:34

2009-10-26 17:29:21

Oracle管理員數(shù)據(jù)庫(kù)管理

2014-03-28 11:15:42

phpmyadminMySQL管理

2012-03-01 10:04:02

虛擬化云計(jì)算混合云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一级片一区二区三区 | 精品一区二区三区免费毛片 | 一本一道久久a久久精品蜜桃 | 999久久久 | 天久久| 久久久久久国产精品免费免费 | 成人精品视频99在线观看免费 | 在线视频国产一区 | 91精品国产综合久久久久 | 99re在线视频 | 日韩av一区二区在线观看 | 伊人免费视频二 | 91久久精品一区二区三区 | 欧美日韩亚洲视频 | 亚洲国产精品久久久久秋霞不卡 | 成年人网站在线观看视频 | 日韩欧美一区二区三区免费看 | 日韩精品久久一区二区三区 | 精品1区2区| 亚洲精品久久 | 四虎av电影 | 日韩成人av在线 | 日韩视频在线播放 | 2019天天操| 99综合| 精品欧美一区二区精品久久久 | 小早川怜子xxxxaⅴ在线 | 国产精品日日摸夜夜添夜夜av | 一区二区三区四区五区在线视频 | 视频一区中文字幕 | 久久国产区 | 亚洲美女视频 | 成人性生交大片 | 国产精品一区二区三 | 免费看啪啪网站 | 欧美激情久久久 | 精品久久久久久亚洲精品 | 一区二区三区在线 | av无遮挡 | 日本一区二区三区四区 | 亚洲福利在线观看 |