CoreData 學(xué)習(xí)筆記

結(jié)構(gòu)流程

1115674-6f67652a5b79322e-1.png

一、創(chuàng)建一個coreData應(yīng)用

1场梆、新建工程摹芙,記得勾選Use Core Data

3F901105-121E-456E-B0E5-E91A3C6E0C65.png

2.AppDelegate.h 的注釋

Paste_Image.png

3.CoreDataTest.xcdatamodeld

FB66DC96-16BB-4BAA-A0CE-A9C62B67FB72.jpeg

4.選擇 CoreDataTest.xcdatamodeld文件建模

Paste_Image.png

二、運用 做增刪改查處理

//聲明一個AppDelegate對象屬性袱瓮,來調(diào)用類中的屬性缤骨,比如被管理對象上下文

@property (nonatomic ,strong)AppDelegate *myAppDelegate;

 1.增添數(shù)據(jù)
 //  barbuttonIt

-(IBAction)addModel:(id)sender
{
//插入數(shù)據(jù)  創(chuàng)建實體描述對象
NSEntityDescription * description = [NSEntityDescription  entityForName:@"Clothes"  inManagedObjectContext:self.myAppDelegate.managedObjectContext];

//1.先創(chuàng)建一個模型對象
Clothes * cloth = [[Clothes alloc]initWithEntity:description insertIntoManagedObjectContext:self.myAppDelegate.managedObjectContext];

cloth.name = @"Puma";
int price = arc4random()%1000+1;
cloth.price = [NSNumber numberWithInt:price];
cloth.type = price>500?@"女裝":@"男裝";

//插入數(shù)據(jù)原數(shù)組
[self.dataSource addObject:cloth];

//插入UI
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.dataSource.count - 1 inSection:0]] withRowAnimation:UITableViewRowAnimationLeft];

//對數(shù)據(jù)管理器中的更改,進(jìn)行永久存儲
[self.myAppDelegate saveContext];
}

2.刪除數(shù)據(jù)

    Clothes *cloth = self.dataSource[indexPath.row];
    [self.dataSource removeObject:cloth];
    
    //刪數(shù)據(jù)管理器中的數(shù)據(jù)
    [self.myAppDelegate.managedObjectContext deleteObject:cloth];
    
    //將進(jìn)行更改過后的永久保存
    [self.myAppDelegate saveContext];
    
    //刪除單元格  UITableViewRowAnimationFade 減淡動畫
    [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

3.改數(shù)據(jù)

// 1.先找到模型對象
Clothes * cloth = self.dataSource[indexPath.row];

if ([cloth.name isEqualToString:@"Puma"])
{
    cloth.name = @"adidas";
}
else
{
    cloth.name = @"NIKE";
}

//刷新UI 單元格
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
//永久保存
[self.myAppDelegate saveContext];

4.查詢數(shù)據(jù)

//初始化數(shù)組
self.dataSource = [NSMutableArray array];
self.myAppDelegate = [UIApplication sharedApplication].delegate;

//查詢數(shù)據(jù)
// 1,  NSFetchRequest
NSFetchRequest * request = [[NSFetchRequest alloc]initWithEntityName:@"Clothes"];

//2.設(shè)置排序
//2.1 創(chuàng)建排序描述對象 (根據(jù)什么排序  升序尺借、絳序) 多個排序?qū)ο?NSSortDescriptor * sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"price" ascending:YES];
request.sortDescriptors = @[sortDescriptor];

//執(zhí)行這個查詢請求
NSError * error  = nil; //查詢錯誤信息

NSArray * result =  [self.myAppDelegate.managedObjectContext executeFetchRequest:request error:&error];

//給數(shù)據(jù)源數(shù)組添加數(shù)據(jù)
[self.dataSource addObjectsFromArray:result];

三绊起、版本控制

1.選擇 CoreDataTest.xcdatamodeld文件 點擊

Paste_Image.png

2..選擇 CoreDataTest.xcdatamodeld文件 選擇當(dāng)前創(chuàng)建的新版本

Paste_Image.png

3.創(chuàng)建映射文件

第一步選擇老的模型版本,第二步選擇老的模型文件


Paste_Image.png
Paste_Image.png

4.更改AppDelegate.m文件

在- (NSPersistentStoreCoordinator *)persistentStoreCoordinator 方法中添加代碼

 NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                         [NSNumber numberWithBool:YES],NSMigratePersistentStoresAutomaticallyOption,
                         [NSNumber numberWithBool:YES],NSInferMappingModelAutomaticallyOption, nil];

帶入options


Paste_Image.png

5.把老的可視化建模的model類刪除燎斩,選擇 CoreDataTest.xcdatamodeld文件創(chuàng)建新的model 方法同上1.4

完虱歪!

練習(xí)demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市栅表,隨后出現(xiàn)的幾起案子笋鄙,更是在濱河造成了極大的恐慌,老刑警劉巖怪瓶,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萧落,死亡現(xiàn)場離奇詭異,居然都是意外死亡劳殖,警方通過查閱死者的電腦和手機铐尚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進(jìn)店門拨脉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哆姻,“玉大人,你說我怎么就攤上這事玫膀∶В” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵帖旨,是天一觀的道長箕昭。 經(jīng)常有香客問我,道長解阅,這世上最難降的妖魔是什么落竹? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮货抄,結(jié)果婚禮上述召,老公的妹妹穿的比我還像新娘。我一直安慰自己蟹地,他們只是感情好积暖,可當(dāng)我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怪与,像睡著了一般夺刑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天遍愿,我揣著相機與錄音存淫,去河邊找鬼。 笑死沼填,一個胖子當(dāng)著我的面吹牛纫雁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倾哺,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼轧邪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了羞海?” 一聲冷哼從身側(cè)響起忌愚,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎却邓,沒想到半個月后硕糊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡腊徙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年简十,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撬腾。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡螟蝙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出民傻,到底是詐尸還是另有隱情胰默,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布漓踢,位于F島的核電站牵署,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏喧半。R本人自食惡果不足惜奴迅,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挺据。 院中可真熱鬧取具,春花似錦、人聲如沸吴菠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽做葵。三九已至占哟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背榨乎。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工怎燥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜜暑。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓铐姚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肛捍。 傳聞我的和親對象是個殘疾皇子隐绵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內(nèi)容