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

IOS數據管理工具CoreData入門之雙向關系操作

移動開發 iOS 數據管理
本文主要來介紹CoreData入門雙向關系的操作和學習,根據實例的操作可以快速的去學習IOS數據庫管理工具coredata,先來看本文內容。

IOS數據管理工具CoreData入門之雙向關系操作是本文要介紹的內容,主要來介紹CoreData入門雙向關系的操作和學習,不多說,我們先來看詳細內容介紹。

雙向的時候,只用指定一邊,另外一邊自動指定,比如,如果一個帳號只有一個聯系人,而一個聯系人對應一個帳號的話,那么帳號表和聯系人表就是一一對應的關系,將他們指定為雙向的,如下面將cnt1.act = act1; cnt2.act = cnt2;則act1.cnt和act2.cnt也是有值的。注釋掉的兩句可有可無。

刪除規則

這里將Account表下面的cnt的刪除規則設定為cascade,則在刪除act1的時候,cnt1也被刪除了。而Contact表沒有將它下面的act的刪除規則設置為cascade,在刪除cnt1的時候,act1還存在。

一對多的關系

上面假設一個帳號只有一個聯系人是不合理的,那只是一種假設,一般都是一個帳號下面有很多聯系人,這就是一對多的關系,上面的兩個法則也適用于這種關系,也就是說帳號下面的cnt設置為cascade,刪除一個帳號時,它所有的聯系人也被刪除了,而聯系人表下面的act設置為nullify,當刪除一個聯系人的時候帳號表沒有變化。

  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);  

小結:IOS數據管理工具CoreData入門之雙向關系操作的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 博客園
相關推薦

2011-06-14 14:27:02

Core DataCocoa TouchiOS

2012-04-09 09:43:49

云計算云管理

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

大數據管理工具

2011-10-18 10:20:13

Data ExplorSQL AzureSQL Server

2011-08-12 10:38:09

MongoDB

2014-07-15 12:30:39

關系管開源工具

2020-10-30 11:18:47

網絡技術工具

2020-09-30 14:05:22

網絡管理

2009-04-24 21:13:45

服務器虛擬化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管理員數據庫管理

2014-03-28 11:15:42

phpmyadminMySQL管理

2012-03-01 10:04:02

虛擬化云計算混合云
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片免费看 | 一区二区免费在线视频 | 国产精品精品视频一区二区三区 | 亚洲男人天堂2024 | 亚洲欧美视频一区二区 | 色久在线 | 国产精品亚洲成在人线 | 亚洲一区二区在线免费观看 | 奇米av| 国产精品久久久久影院色老大 | 亚洲欧美精品在线观看 | 国产精品久久午夜夜伦鲁鲁 | 久久久国产精品一区 | 成人国产精品一级毛片视频毛片 | 久久国产精品一区二区三区 | 欧美不卡一区二区三区 | 亚洲 自拍 另类 欧美 丝袜 | 日韩成人在线播放 | 欧美电影一区 | 欧美美女二区 | 一区二区三区高清在线观看 | 国产成人一区二区三区久久久 | 国产 欧美 日韩 一区 | 黄色成人免费在线观看 | av香港经典三级级 在线 | 一区二区三区国产精品 | 精品视频一区在线 | 国产精品成人一区二区三区夜夜夜 | 日韩视频免费看 | 中文字幕欧美一区二区 | 国产欧美综合在线 | 欧美亚州 | 日韩一区二区三区在线视频 | 嫩草最新网址 | 久久久久久久一区二区三区 | 久久国产日韩 | 成年人黄色一级片 | 亚洲经典一区 | www.v888av.com| 97国产精品 | 欧美日韩精品久久久免费观看 |