iOS CoreData 數(shù)據(jù)庫操作

數(shù)據(jù)庫操作需要幾個基本要素:

  • CoreData支持咆课,(默認(rèn)模版選擇比較關(guān)鍵,因?yàn)橛幸恍〢ppDelegate配置)
  • editor自動創(chuàng)建的 db名+CoreDataClass 和 db名+CoreDataProperties
  • AppDelegate 對象系羞, 通過 (AppDelegate*)[UIApplication sharedApplication].delegate; 獲得
  • 數(shù)據(jù)庫鏈接的context 通過appDelegate.persistentContainer.viewContext獲得

然后就可以愉快的操作了:

添加對象
Dog *dog = [NSEntityDescription insertNewObjectForEntityForName:@"Dog" inManagedObjectContext:_app.persistentContainer.viewContext];
static NSInteger index = 0;
dog.name = [NSString stringWithFormat:@"tom%ld",index++];
dog.sex = @"公";
dog.age = [NSString stringWithFormat:@"%uyears",arc4random() % 15];
[_app saveContext];

注意的是數(shù)據(jù)庫不支持自動計(jì)數(shù)捣域,所以需要自己去處理,或者按照搜索排序
另外注意一點(diǎn)叔壤,添加可以對同一個內(nèi)容添加多次繁堡,所以自己做好檢測

搜索
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:_app.persistentContainer.viewContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@",@"tom0"];
request.predicate = predicate;
NSArray *array = [_app.persistentContainer.viewContext executeFetchRequest :request error:nil];
for (Dog *dog in array) {
    NSLog(@"dog name:%@",dog.name);
}

如果想獲得所有數(shù)值則把request.predicate條件清除

刪除
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:_app.persistentContainer.viewContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = entity;

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@",@"tom0"];
request.predicate = predicate;

NSArray *array = [_app.persistentContainer.viewContext executeFetchRequest:request error:nil];
if (array.count) {
    for (Dog *dog in array) {
        [_app.persistentContainer.viewContext deleteObject:dog];
    }
    NSLog(@"DELETE SUCCESS!!");
    [_app saveContext];
} else
    NSLog(@"NOT FOUND DATA");   

原理就是對搜索的結(jié)果進(jìn)行操作處理

更新
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog" inManagedObjectContext:_app.persistentContainer.viewContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = entity;

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@",@"tom0"];
request.predicate = predicate;

NSArray *array = [_app.persistentContainer.viewContext executeFetchRequest:request error:nil];
if (array.count) {
    for (Dog *dog in array) {
        dog.name = @"jerry8";
    }
    [_app saveContext];
    NSLog(@"UPDATA SUCCESS!!");
} else
    NSLog(@"NOT FOUND DATA");

都是對搜索操作的擴(kuò)展

參考:

http://www.reibang.com/p/f3a032f97c6c
多條件查詢
https://blog.csdn.net/qq_29892943/article/details/52765344

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沈善,一起剝皮案震驚了整個濱河市乡数,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闻牡,老刑警劉巖净赴,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異罩润,居然都是意外死亡玖翅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門割以,熙熙樓的掌柜王于貴愁眉苦臉地迎上來金度,“玉大人,你說我怎么就攤上這事严沥〔录” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵消玄,是天一觀的道長跟伏。 經(jīng)常有香客問我,道長翩瓜,這世上最難降的妖魔是什么受扳? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮兔跌,結(jié)果婚禮上勘高,老公的妹妹穿的比我還像新娘。我一直安慰自己浮定,他們只是感情好相满,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布层亿。 她就那樣靜靜地躺著桦卒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匿又。 梳的紋絲不亂的頭發(fā)上方灾,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音碌更,去河邊找鬼裕偿。 笑死,一個胖子當(dāng)著我的面吹牛痛单,可吹牛的內(nèi)容都是我干的嘿棘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼旭绒,長吁一口氣:“原來是場噩夢啊……” “哼鸟妙!你這毒婦竟也來了焦人?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤重父,失蹤者是張志新(化名)和其女友劉穎花椭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體房午,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矿辽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了郭厌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袋倔。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖折柠,靈堂內(nèi)的尸體忽然破棺而出奕污,到底是詐尸還是另有隱情,我是刑警寧澤液走,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布碳默,位于F島的核電站,受9級特大地震影響缘眶,放射性物質(zhì)發(fā)生泄漏嘱根。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一巷懈、第九天 我趴在偏房一處隱蔽的房頂上張望该抒。 院中可真熱鬧,春花似錦顶燕、人聲如沸凑保。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欧引。三九已至,卻和暖如春恳谎,著一層夾襖步出監(jiān)牢的瞬間芝此,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工因痛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留婚苹,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓鸵膏,卻偏偏與公主長得像膊升,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谭企,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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