精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Swift實踐:使用CoreData完成一個通訊錄存儲

新聞 移動開發
CoreData作為Apple的親兒子,依然在App需要存儲結構化數據上發揮著重要的作用。

CoreData作為Apple的親兒子,依然在App需要存儲結構化數據上發揮著重要的作用。CoreData已經超過十年了,而且親爹還在積極的維護著它。

[[202547]]

在Monster、Indeed這些海外主流招聘網站看一下iOS的職位,基本上都會大大寫著要求會熟練使用CoreData。

然而這么一個成熟,被實踐檢驗過的代碼庫反而在國內使用并不是特別多。FMDB、Realm等等在被廣泛使用。經常在面試的時候問iOSer是不是了解數據庫,回答都是了解。再一細問,很多人也都是只使用到了FMDB,對于CoreData卻是了解甚少。

后來想了想,可能是因為CoreData的入門成本有點高,而且相關的中文資料比較少的緣故吧。

為了寫這個系列,還專門買來了objc.io的CoreData這本書。讀完之后受益匪淺。

這個系列要寫多少篇還沒有想好,大概也還是會從基本到高級的一個過渡。

第一篇通過一個通訊錄實現數據庫的讀取。第二篇會存儲更多類型的數據。

最終實現結果:

CoreDataDemo.gif

1. Core Data架構

一個基本的 Core Data 棧由四個主要部分組成:托管對象 (NSManagedObject),托管對象上下文 (NSManagedObjectContext),持久化存儲協調器 (NSPersistentStoreCoordinator),以及持久化存儲 (NSPersistentStore)。

  • NSManagedObject是我們的數據模型,也就是我們存儲的對象。這些對象都保存在NSManagedObjectContext中,每個存儲對象都知道自己對應哪個上下文。

  • NSManagedObjectContext :日常打交道的都是這個。其他三個在數據遷移的時候才會看到。

  • NSPersistenStoreCoordinator :

    是模型和存儲數據庫之間的橋梁,負責兩者之間最復雜的細節隱藏。

關于Context想多說點,因為是天天都打交道的嘛。它其實是內存中的一塊區域,對象所有的操作都需要一個context。直到save之前,都是在內存中,不會對數據庫中的內容有任何影響。每一個托管對象都對應一個Context,一個對象只會跟一個特定的Context打交道。直到生命周期結束。

2. CoreData的基本讀取操作

2. 1 獲取CoreData已經保存數據的五個步驟

  1. 獲取總代理和托管對象總管

  2. 從Entity獲取一個fetchRequest

  3. 根據fetchRequest,從managedContext中查詢數據

  4. 保存。保存過程中可能會出錯,要做一下處理。

  5. 添加到數組中

2.2 基本存儲

  • 獲取總代理和托管對象總管

  • 建立一個Entity

  • 保存內容

  • 保存Entity到托管對象。如果保存失敗,進行處理

  • 保存到數組中,更新UI

3. 更新一個通訊錄的列表頁Demo

需求:完成一個通訊錄的列表頁。要求:

  1. 從本地數據庫中讀取名字列表

  2. 點擊增加可以添加一個名字

  3. 添加的名字可以保存到本地數據庫中

好,接下來咱們來一步一步實現這個需求。為了突出重點,咱們先從最簡單的開始,使用默認帶數據庫的工程進行著手。

3.1 Xcode創建默認帶數據庫的工程

在 Xcode 創建工程時,提供了創建 CoreData 的模板,只需要我們在創建時,勾選 CoreData 選項,Xcode 就會自動創建出數據模型文件。

這個Demo用這個創建,純粹是為了簡單直奔主題。不然還要一開始分享很多其他的內容,看官們會覺得膩的。

但是,實際開發中不建議使用這種方式創建。通常情況下我們都會把生成的模板代碼都刪除的。

3.2 創建本地數據庫模板

勾選完成之后,會看到一個后綴名是"xcdatamodeld"的文件,這個就是咱們的數據庫模板啦。

當然,現在里面是還不能存數據的,還需要我們設置一下字段名稱。

  • 第一步,要添加一個Entity,這個就相當于是數據庫中的一張表。

  • 第二步,對新建的Entity命名。

  • 第三步,設計Entity里面的屬性。咱們這個Demo的需求里面只需要一個人名,所以就只設置了一個名字叫做name的屬性,類型是String。

其他更多的屬性類型,我們會在下面一篇文章分享。

3.3 查詢本地數據

咦?在最開始的不是說一個基本的 Core Data 棧由四個主要部分組成嘛?怎么沒有看到吶?

來來來,這就是最開始我們使用Xcode創建默認帶數據庫的工程的原因。使用了這個選項,會自動的在AppDelegate中生成相應的代碼。確實簡化了咱們第一次學習的成本,但是就像沒人會把所有代碼都寫在Controller里面一樣,在APPDelegate也不會寫這些東西。

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        //        步驟一:獲取總代理和托管對象總管
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        
        let managedObectContext = appDelegate.persistentContainer.viewContext
        
//        步驟二:建立一個獲取的請求
        let fetchRequest = NSFetchRequest

        (entityName: "Person")          //        步驟三:執行請求         do {             let fetchedResults = try managedObectContext.fetch(fetchRequest) as? [NSManagedObject]             if let results = fetchedResults {                 people = results                                  tableView.reloadData()             }                     } catch  {             fatalError("獲取失敗")         }     }    

3.4 插入并保存數據至本地數據庫

private func saveName(text: String) {
    //        步驟一:獲取總代理和托管對象總管
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    
    let managedObectContext = appDelegate.persistentContainer.viewContext
    
    //        步驟二:建立一個entity
    let entity = NSEntityDescription.entity(forEntityName: "Person", in: managedObectContext)
    
    let person = NSManagedObject(entity: entity!, insertInto: managedObectContext)
    
    //        步驟三:保存文本框中的值到person
    person.setValue(text, forKey: "name")
    
    //        步驟四:保存entity到托管對象中。如果保存失敗,進行處理
    do {
        try managedObectContext.save()
    } catch  {
        fatalError("無法保存")
    }
    
    //        步驟五:保存到數組中,更新UI
    people.append(person)
}

所有的源代碼在這里哈:

https://github.com/Stanbai/CoreDataDemo.git

Swift之CoreData系列之一:基礎存儲

  • 作者:非典型技術宅

  • 鏈接:http://www.jianshu.com/p/3e793fca6a13

  • 來源:簡書

  • 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

責任編輯:張燕妮 來源: 簡書
相關推薦

2011-09-05 14:08:21

微信Andriod安卓

2022-01-04 15:34:31

鴻蒙HarmonyOS應用

2011-09-16 14:05:42

Andrioid應用iPhone應用Symbian應用

2021-12-10 10:12:44

鴻蒙HarmonyOS應用

2012-02-09 09:10:44

Path通訊錄隱私

2011-07-19 17:25:14

jQuery MobiAndroid

2010-06-18 22:42:42

智能手機平臺Android網秦

2012-06-05 13:53:03

天天聯系華為

2013-03-18 10:19:27

安卓軟件手機通訊錄隱私信息

2011-07-20 08:49:24

jQuery MobiAndroid

2012-12-21 14:51:52

手機中國

2010-09-26 08:35:01

火種通訊錄

2010-09-08 23:11:01

2021-12-14 09:00:42

Swift HTTP 代理服務器

2010-05-12 14:42:20

2014-09-24 10:29:14

微信企業號開發

2015-07-30 15:58:15

EC企信企業即時通訊

2011-11-28 14:37:32

點心通訊錄

2012-01-09 16:43:13

點心通訊錄

2011-08-12 10:16:10

iPhone通訊錄聯系人
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久夜色| 欧美日韩亚洲自拍| 亚洲精品国偷拍自产在线观看蜜桃| 欧美777四色影| 精品国内二区三区| 国产91在线免费| 成年人在线看| 国产盗摄女厕一区二区三区| 午夜精品三级视频福利| 婷婷色一区二区三区| 亚洲aⅴ网站| 亚洲一二三四区| 日韩国产一区久久| 亚洲AV无码国产精品午夜字幕| 国产偷自视频区视频一区二区| 亚洲欧美综合图区| 特黄特色免费视频| 成人mm视频在线观看| 亚洲一线二线三线久久久| 欧美中日韩免费视频| av免费观看在线| 天堂午夜影视日韩欧美一区二区| 久久久国产视频| 久久久久国产精品无码免费看| 国产精品第一国产精品| 午夜激情久久久| 婷婷视频在线播放| 国际av在线| 成人高清视频在线| 91美女片黄在线观看游戏| 久久国产视频精品| 欧美日韩在线大尺度| 中文字幕一区二区精品| 中文视频在线观看| 精品一区二区三区四区五区| 日本韩国一区二区三区| 国产欧美日韩小视频| 成人免费网址| 欧美国产一区二区在线观看| 国产一区二区三区免费不卡| 国产女主播福利| 蜜臀av性久久久久蜜臀aⅴ| 992tv成人免费视频| 日日噜噜夜夜狠狠久久波多野| 国内亚洲精品| 国产视频久久久久| 久久人人妻人人人人妻性色av| 免费看一区二区三区| 欧美精品在线观看播放| 成人性生生活性生交12| 新片速递亚洲合集欧美合集| 福利视频第一区| 欧美精品久久久久久久自慰| 国产三区在线观看| 国产精品国产三级国产| 亚洲高清在线播放| aaa在线观看| 欧美激情一区二区三区不卡| 日韩不卡av| 国产在线色视频| 久久久久国产一区二区三区四区| 精品国产综合区久久久久久| 亚洲美女性生活| 国产乱对白刺激视频不卡| 亚洲最大福利网站| 精品久久国产视频| 成人永久免费视频| 国产精品一区二区a| 好吊色一区二区| 99久久综合99久久综合网站| 国产在线精品一区二区三区》| 三级在线观看网站| 久久综合成人精品亚洲另类欧美| 久久久久久欧美精品色一二三四| 色网站在线免费观看| 久久久久久久久99精品| 日韩一区免费观看| 午夜免费视频在线国产| 亚洲另类一区二区| 又大又硬又爽免费视频| 日本在线播放一二三区| 在线欧美小视频| 亚洲欧美日韩三级| 中文字幕视频精品一区二区三区| 精品人在线二区三区| 亚洲国产精品无码久久久久高潮| 久久99高清| 最近免费中文字幕视频2019| 黄色a级片在线观看| 北条麻妃在线| 国产精品网站在线| 天天综合五月天| 欧美人体视频xxxxx| 午夜久久电影网| 91在线视频观看免费| avtt久久| 日韩av最新在线| 黄大色黄女片18免费| 综合av在线| 秋霞午夜一区二区| 国产精品熟女久久久久久| 成人免费毛片高清视频| 性刺激综合网| 成人福利电影| 欧美日韩精品综合在线| 国产综合内射日韩久| 日韩在线影视| 久久精品国产69国产精品亚洲| 精品在线视频观看| 免费av网站大全久久| 国产精品一 二 三| 欧美jizzhd欧美| 欧美日韩裸体免费视频| 亚洲欧美日本一区二区三区| 日韩精品社区| 欧美精品性视频| 波多野结衣毛片| 成人丝袜高跟foot| 国产精品99久久久久久大便| 黄视频免费在线看| 欧美一区二区在线免费播放| 日韩在线免费观看av| 国产精品99免费看| 国产日本欧美一区二区三区在线 | 欧美精品色综合| 国产人妻黑人一区二区三区| 欧美激情欧美| 国产成人精品一区| 日日夜夜精品免费| 玉米视频成人免费看| 天天干天天操天天玩| 偷拍视屏一区| 久久噜噜噜精品国产亚洲综合| 国产美女www爽爽爽| 91一区二区在线| 人妻av无码专区| 国产剧情一区二区在线观看| 伊人av综合网| 日韩手机在线视频| 91视频com| 国产素人在线观看| 成人盗摄视频| 国产69精品久久久久9999| aaa一区二区| 中文字幕亚洲综合久久菠萝蜜| 免费看黄色一级大片| 深爱激情综合| 国产精品com| 黄色影院在线播放| 欧美性色视频在线| 欧美多人猛交狂配| 久久亚洲精选| 日本在线播放一区| 日韩美女在线看免费观看| 日韩成人免费视频| 免费黄色网址在线| 久久―日本道色综合久久| 欧美精品99久久| 视频福利一区| 日本亚洲欧洲色α| 黄色软件在线| 精品视频免费看| 精品国产国产综合精品| 国产在线一区二区| 精品一二三四五区| 国内视频在线精品| 欧美一区深夜视频| 国产视频第一页在线观看| 欧美性受xxxx黑人xyx性爽| 天堂在线中文视频| 狠狠狠色丁香婷婷综合激情| 国产美女视频免费| 97一区二区国产好的精华液| 性欧美视频videos6一9| 欧美日本网站| 欧美日韩你懂的| 日本中文字幕免费在线观看| 粉嫩av一区二区三区粉嫩 | 性色av一区二区怡红| 欧美久久久久久久| 日韩毛片网站| 欧美激情精品久久久久久| 午夜福利视频一区二区| 日本高清视频一区二区| 国产喷水在线观看| 成人在线综合网站| 午夜视频在线瓜伦| 99精品视频在线| 国产98在线|日韩| av日韩亚洲| 久久伊人91精品综合网站| 欧美 中文字幕| 在线免费观看视频一区| 91日韩中文字幕| 99久久久精品| 中文字幕一区二区三区四区在线视频| 久久久精品久久久久久96| 国产自产在线视频一区| 久久精品xxxxx| 欧美极品少妇xxxxⅹ免费视频| 青青青手机在线视频观看| 欧美在线你懂得| 免费无码毛片一区二区app| 久久婷婷综合激情| 野花视频免费在线观看| 丝袜美腿亚洲色图| 久草免费福利在线| 日韩中字在线| 久久精品国产第一区二区三区最新章节 | 久久手机精品视频| 午夜小视频免费| 欧美精品久久久久久久久老牛影院| 四虎永久在线精品| 亚洲天天做日日做天天谢日日欢| 国产肉体xxxx裸体784大胆| 久久er精品视频| 精品中文字幕av| 国产一区亚洲| 一区二区三区四区视频在线| 亚洲动漫精品| 国产精品视频免费观看| 亚洲国产91视频| 国产97在线|日韩| 高h视频在线播放| 久久久精品网站| 成人在线免费观看| 亚洲精品视频免费| 国产91免费看| 欧美一级片在线| 亚洲字幕av一区二区三区四区| 日韩欧美精品在线观看| 日本最新中文字幕| 一区二区国产视频| √天堂中文官网8在线| 国产精品女主播av| 国产成人免费观看网站| 国产午夜精品在线观看| wwwwww日本| 91视频免费播放| 超碰97在线资源站| 99久久婷婷国产综合精品| 催眠调教后宫乱淫校园| 风间由美性色一区二区三区| 精品人妻一区二区三| 国产在线国偷精品免费看| 午夜视频在线网站| 久久99精品一区二区三区| 免费看涩涩视频| 蜜桃精品视频在线| 亚洲欧美视频二区| 久久99热国产| 黄色片免费网址| 国产一区二区三区免费观看| 亚洲精品在线视频播放| 国模娜娜一区二区三区| 国产黑丝在线视频| 国产大陆精品国产| 91亚洲一线产区二线产区| 成人性生交大合| 97精品人妻一区二区三区蜜桃| 成人精品高清在线| 国产精品伦子伦| 久久亚洲捆绑美女| 日韩影视一区二区三区| 国产精品久久久久国产精品日日| 激情无码人妻又粗又大| 亚洲青青青在线视频| 欧美成人三级在线观看| 亚洲乱码中文字幕综合| 国产无遮挡又黄又爽又色| 欧美日韩在线视频一区| 免费无码国产精品| 欧美男生操女生| www.国产免费| 日韩经典中文字幕| av网站无病毒在线| 欧美日本黄视频| 老司机深夜福利在线观看| 国产成人欧美在线观看| 婷婷久久免费视频| 国产精品区二区三区日本| 亚洲欧美tv| 中文字幕一区二区三区在线乱码| 欧美在线亚洲| 日韩精品视频一区二区在线观看| 人人精品人人爱| 潘金莲一级淫片aaaaa| 99精品欧美一区| 国产精品综合激情| 一区二区日韩av| 免费看日批视频| 91精品在线麻豆| | 亚洲成年人在线播放| 国产九色在线| 欧美日韩成人在线视频| 激情亚洲影院在线观看| caoporen国产精品| av伊人久久| 你真棒插曲来救救我在线观看| 日本不卡高清视频| wwwxx日本| 国产精品午夜电影| 日韩av电影网| 欧美卡1卡2卡| 蜜桃成人在线视频| 九九热99久久久国产盗摄| 欧美日韩123区| 春色成人在线视频| 欧美丰满老妇| 日韩欧美在线播放视频| 国产精品一区二区免费不卡| www色com| 精品国产精品自拍| 99久久久久成人国产免费| 亚洲视频在线播放| free性m.freesex欧美| 91精品视频专区| 国内精品视频在线观看| 人人妻人人添人人爽欧美一区| 另类成人小视频在线| 欧美色图亚洲激情| 亚洲福中文字幕伊人影院| 一级特黄aa大片| 亚洲一区二区国产| 天堂а√在线最新版中文在线| 亚洲xxxxx电影| 日韩成人精品一区二区| 日韩手机在线观看视频| 99re这里只有精品首页| 国产一级二级毛片| 日韩视频免费观看高清完整版 | 精品偷拍各种wc美女嘘嘘| 日本高清在线观看| 亚洲aⅴ男人的天堂在线观看| 成人vr资源| 人妻无码视频一区二区三区| 99精品久久久久久| 日韩黄色在线视频| 精品日韩在线一区| 男人添女人下部高潮视频在线观看| 国产一区二区色| 日韩一区亚洲二区| 视频在线观看免费高清| 中文一区二区完整视频在线观看| 波多野结衣激情视频| 国产一区二区三区视频在线观看| 性欧美gay| 视频一区国产精品| 青青青伊人色综合久久| 欧美亚洲色综久久精品国产| 在线观看成人免费视频| porn视频在线观看| 国产免费观看久久黄| 婷婷亚洲五月| 日本少妇一区二区三区| 亚洲综合精品久久| 色欲av永久无码精品无码蜜桃| 97精品国产97久久久久久免费| 都市激情亚洲| 亚欧无线一线二线三线区别| 91片在线免费观看| 午夜一区二区三区四区| 中文字幕亚洲专区| 日韩免费高清视频网站| 亚洲色成人www永久在线观看 | 97视频在线观看网站| 成人黄色午夜影院| 欧美精品啪啪| xxxx黄色片| 欧洲色大大久久| 男人天堂手机在线| 国产精品国产精品国产专区不卡| 日韩图片一区| 微拍福利一区二区| 777久久久精品| 女囚岛在线观看| 久久福利电影| 久久99热99| 国产成人啪精品午夜在线观看| 亚洲精品在线视频| 国产精品久久久久久久久免费高清| 99精品一级欧美片免费播放| 成人黄色网址在线观看| 国语对白做受69按摩| 欧美成人激情在线| 日韩精品导航| 999久久久精品视频| 姬川优奈aav一区二区| 爱久久·www| 国产精品久久国产精品| 奇米四色…亚洲| 精品少妇theporn| 国产亚洲精品激情久久| 欧美经典一区| 黄色高清无遮挡| 亚洲午夜影视影院在线观看| 国产精品影院在线| 国模一区二区三区私拍视频| 美女一区二区三区在线观看|