亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用 Realm 和 Swift 創建 ToDo 應用

2019-11-09 17:54:45
字體:
來源:轉載
供稿:網友

本文轉載于SwiftGG 智能手機的快速發展的同時,涌現出了很多對開發者友好的開發工具。這些工具不僅使得開發變得更加簡單和容易,同時也保證了性能和產品質量。如今想要在 App Store 中占據一席之地,并非易事。而且想要使得應用易于擴展就更加困難了。當你成功獲得百萬量級的用戶時,應用中的每一個細節都不能放過,并且需要在很短的時間完成對細節的打磨。所以和數據庫打交道,是很多開發者都會面臨的一個問題。相信我們每個人都會因為數據庫引起的各種問題而頭疼不已,對于數據庫,我想如今我們只有兩種選擇:SQLite 和 Core Data。我是 Core Data 的忠實粉絲,它對記錄(records)的處理和持久化數據的能力非常強大,但是我意識到,在開發應用的過程中,我在 Core Data 上浪費了太多的時間。最近,我無意中發現了 Realm,一個可以替代 SQLite 和 Core Data 的更好的解決方案。

Realm 是什么?


Realm 是一個跨平臺的移動終端數據庫,支持 iOS(Swift 和 Objective-C 語言都支持)和 Android。Realm 的目的就是提供比 SQLite 和 Core Data 更好更快的數據庫支持。它不僅僅是更好和更快,而且更加易于使用,短短幾行代碼就可以完成很多操作。Realm 完全免費,你可以隨意使用它。Realm 是為移動設備而生的,因為在過去的十年中,移動終端的數據庫技術沒有任何的革新。現在如果和移動終端的數據庫打交道,你只有一種選擇,使用 SQLite 或者是底層封裝了 SQLite 的技術比如 Core Data。Realm 的目的是更加易用,它并不是一個建立在 SQLite 之上的 ORM,而是一個基于自己的持久化引擎,簡單并且快速的面向對象移動數據庫。 這里寫圖片描述

為什么選擇 Realm?


Realm擁有令人難以置信的速度并且使用起來非常簡單,你會發現,無論是想完成數據庫的讀還是寫操作,都只需要短短的幾行代碼。下面我會列出它的所有優勢,并說明為什么 Realm 是你在移動應用上數據庫的不二選擇:

安裝簡單:在下一個章節 — 如何使用 Realm 中你會了解到,安裝 Realm 會比你想象的更為簡單。使用簡單的 Cocoapods 命令,你就可以完成所有的安裝工作。

速度更快:使用 Realm 庫操作數據庫的速度非??臁K?SQLite 和 CoreData 都更加快速,這里有它們之間的比較指標作為證據。

跨平臺:Realm 的數據庫文件是跨平臺的,可以在 iOS 和 Android 間共享。無論你是使用 java、Objective-C 或者 Swift,都可以使用相同的抽象模型訪問。

易于擴展:如果你的移動應用需要處理大量的用戶數據記錄,數據庫的可擴展性就顯得十分重要。在開始著手開發應用之前,這一點就應該被考慮在內。Realm 提供很好的可擴展性,在操作大量的數據時,速度也非常之快。選擇使用 Realm 可以為你的應用帶來更快的速度和更加流暢的用戶體驗。

規范的文檔和很好的支持:Realm 提供了豐富的大量條理清晰、易于閱讀的文檔。如果你有任何的問題,你也可以通過 Twitter、Github 或 Stackoverflow 來獲得幫助。

可信任:Realm 已經被大量的初創公司和大公司用于它們的移動應用中,像 Pinterest、Dubsmash 和 Hipmunk。

免費:除了以上這些極好的優點以外,它還是完!全!免!費!的!

讓我們開始動手吧


讓我們開始學習 Realm,使用它來構建一個簡單的使用 Swift 語言的 iPhone 應用。所完成的 demo 程序是一個簡單的 Todo 應用。用戶可以增加任務清單,每個任務清單都能夠包含多個任務。任務擁有名稱、備注、到期日期,可以添加圖片,并且擁有一個布爾值來表示該任務是否已經完成。在開始創建 Xcode 項目之前,我們需要先配置好 Xcode,安裝使用 Realm 所需的工具。

環境要求


請注意需要滿足下列要求

iOS 8 及更高的版本,OS X 10.9 及更高的版本

Xcode 6.3 及更高版本

Realm 有兩個發行版,一個針對 Swift 2.0,另一個針對 Swift 1.2。我們推薦您使用 Swift 2.0 的版本。當然你也可以使用針對 Swift 1.2 的版本,但是以后這個版本 Realm 不會再進行更新支持,所以為了保險起見,使用 Swift 2.0 對應的版本,是個更好的選擇。

配置 Xcode 和所需的工具


在開始配置 Xcode 項目之前,請確保運行環境已經正確安裝了 CocoaPods,我們將使用它來為項目安裝 Realm。如果對 CocoaPods 不熟悉,你可以查看在線的教程,這些教程的材料足夠讓你明白如何開始使用它。

現在,使用 Single View application 項目模板創建一個 Xcode 工程,命名為 RealmTasks 或者其他你喜歡的名字。請確保選擇 Swift 作為開發語言。之后在終端中進入到該工程目錄,使用如下命令來初始化 CocoaPods:

pod init

然后使用 Xcode 打開生成的 Podfile 文件,在 target 之后,添加 pod 'RealmSwift',修改完之后,應該是下面這個樣子: 這里寫圖片描述

下面運行 pod install 命令來把 Realm 下載安裝到項目中。完成之后,你會在你的工程文件目錄發現一個新生成的 Xcode 工作空間。請確保打開 RealmTasks.xcworkspace 而不是 xcodePRoj。打開工作空間后,你會看到像下面這樣的情形: 這里寫圖片描述

現在就可以在 Xcode 中使用 Realm 啦,但是我們將安裝下面的小工具來讓使用 Realm 的過程更加容易。

在 Xcode 中安裝 Realm 插件


Realm 開發團隊提供了一個生成 Realm 模型非常有用的插件。為了安裝這個插件,我們要使用 Alcatraz。如果你不知道 Alcatraz 是什么的話,這里解釋一下,它是一個簡單有用的開源包管理工具,它可以讓你無需任何配置,自動地為 Xcode 安裝插件、文件模板和顏色主題。為了安裝 Alcatraz,你只需將以下代碼復制到終端中執行,之后重啟 Xcode:

curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/master/Scripts/install.sh | sh

然后在 Xcode 中,選擇 Window -> Package Manager,如下圖: 這里寫圖片描述

然后在彈出的窗口中,你可以選擇安裝你喜歡的插件或者文件模板,在搜索框中你可以搜索你喜歡的插件、配色。在搜索框輸入「Realm」,在出現的結果中選擇「RealmPlugin」,點擊 Install 按鈕 這里寫圖片描述

Realm 瀏覽器


給大家介紹的最后一個工具是 Realm 瀏覽器。這個瀏覽器可以幫助你閱讀和編輯你的 .realm 數據庫文件。這些文件在應用程序中被創建,在數據庫表中保存了所有的數據實體(entities)、屬性(attributes)和記錄(records)。之前我們說過,這些數據庫文件可以在像 iOS 和 Android 這樣不同的平臺間共享。想要下載最新版本的 Realm 瀏覽器,請訪問 iTunes store。打開 Realm 瀏覽器,選擇 Tools -> Generate demo database。它會幫你生成 realm 數據庫測試文件,你可以使用該瀏覽器打開和編輯它的內容。當你打開的時候,你會看到像下面的內容: 這里寫圖片描述 正如你所見,在 RealmTestClass1 中,它擁有 1000 條記錄,顯示了多種不同的參數類型(即「列」)。我們會在下節介紹支持的屬性類型。

現在,Realm 的所有準備工作都已就緒,那我們開始動手吧!

數據模型類


好戲才剛剛開始。首先我們來創建模型類或者說我們的數據庫。為了創建 Realm 數據模型類,你只需要簡單地新建一個普通的 Swift 類繼承自 Object 就可以了。因為 Realm 數據模型類的基類是 Object,所以 Object 的子類都可以擴展為 Realm 的模型類。一旦創建類后,就可以添加屬性了。Realm 支持以下多種數據類型:

– Int,Int8,Int16,Int32 和 Int64 – Boolean – Float – String – NSDate – NSData – 繼承自 Object 的類 => 作為一對一關系(Used for One-to-one relations) – List => 作為一對多關系(Used for one-to-many relations)

Realm 中的 List 可以包含多個 Object 實例,參考上面 demo 數據庫的截圖,最后一列表示在其他數據表中的存在的一組引用。在和 Realm 模型類打交道的時候,使用的方式和其他 Swift 類一樣。例如,你可以添加方法或者遵循指定的協議。

多說無益,來看代碼 ??

現在讓我們使用之前在 Xcode 中安裝的 Realm 插件來新建一個 Realm 類。打開 Xcode,新建文件,在右邊的側邊欄選擇 Realm: 這里寫圖片描述


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av免费观影| 欧美日韩国产综合视频在线观看中文| 欧美精品电影免费在线观看| 色香阁99久久精品久久久| 欧美一区二区.| 欧美亚洲伦理www| 久久精品国产亚洲精品2020| 久久久精品在线观看| 国产国产精品人在线视| 精品国产自在精品国产浪潮| 97精品视频在线观看| 国产综合久久久久| 91精品久久久久久久久久久久久| 成人动漫网站在线观看| 91影院在线免费观看视频| 欧美日韩国产一区中文午夜| 色偷偷av一区二区三区乱| 国产精品福利在线观看网址| 日韩av不卡在线| 亚洲国产成人av在线| 中文字幕亚洲欧美| 精品国产欧美一区二区五十路| 亚洲精品videossex少妇| 中文字幕亚洲综合| 中文字幕精品www乱入免费视频| 亚洲欧美制服另类日韩| 91久久久久久| 亚洲欧美日韩在线一区| 国产日韩在线观看av| 国产精品成人免费电影| 亚洲色图偷窥自拍| 亚洲无av在线中文字幕| 夜夜躁日日躁狠狠久久88av| 日韩有码视频在线| 欧美日韩亚洲网| 插插插亚洲综合网| 中文字幕综合在线| 欧美日本精品在线| 国产精品美腿一区在线看| 午夜精品久久久久久99热| 亚洲丁香久久久| 亚洲人成网站777色婷婷| 精品美女永久免费视频| 国产精品免费久久久久影院| 亚洲精品国产精品国自产观看浪潮| 国产一区二区成人| 韩国美女主播一区| 日韩在线免费高清视频| 欧美在线亚洲在线| 热久久这里只有精品| 欧美孕妇性xx| 亚洲a区在线视频| 欧美高清性猛交| 国产精品成人aaaaa网站| 茄子视频成人在线| 欧美日韩爱爱视频| 色偷偷偷综合中文字幕;dd| 久久久在线免费观看| 国产精品中文字幕久久久| 日韩欧美一区二区三区久久| 欧美亚洲成人网| 国产精品久久视频| 精品久久久久久久久国产字幕| 精品国产电影一区| 亚洲精品ady| 精品欧美一区二区三区| 综合国产在线视频| 久久久久久尹人网香蕉| 欧美国产欧美亚洲国产日韩mv天天看完整| 91日本在线视频| 久久久久久久久国产| 国产精品96久久久久久| 久久国产精品久久久久久久久久| 日韩欧美在线中文字幕| 亚洲三级黄色在线观看| 日韩一中文字幕| 美女啪啪无遮挡免费久久网站| 97久久精品国产| 久久人人爽人人爽人人片亚洲| 国自在线精品视频| 亚洲天堂av综合网| 日本高清久久天堂| 2019中文字幕在线观看| 97人人模人人爽人人喊中文字| 欧美高跟鞋交xxxxxhd| 国产成人精品久久亚洲高清不卡| 久久久精品国产一区二区| 97精品国产97久久久久久| 欧美一区二区视频97| 日韩av快播网址| 国产精品影片在线观看| 国产精品一区二区av影院萌芽| 这里只有精品丝袜| 亚州国产精品久久久| 欧美日韩性视频在线| 国产在线精品成人一区二区三区| 国产在线视频一区| 欧美中在线观看| 91tv亚洲精品香蕉国产一区7ujn| 国产精品福利无圣光在线一区| 色偷偷亚洲男人天堂| 久99久在线视频| 亚洲第一男人av| 亚洲网站在线播放| 亚洲深夜福利在线| 欧美日韩视频在线| 成人动漫网站在线观看| 亚洲自拍中文字幕| 亚洲a级在线播放观看| 2021国产精品视频| 欧美中文字幕在线观看| 91av网站在线播放| 国产精品av电影| 欧美电影在线观看| 久久视频这里只有精品| 色综合影院在线| 日韩hd视频在线观看| 国产精品美女久久久久av超清| 国产成人在线一区| 亚洲人成人99网站| 国产婷婷色综合av蜜臀av| 欧美视频第一页| 性欧美长视频免费观看不卡| 日韩精品在线观看一区二区| 在线亚洲午夜片av大片| 久久精品视频亚洲| 欧美国产日韩一区二区三区| 国产欧美欧洲在线观看| 久久乐国产精品| 国产自产女人91一区在线观看| 成人在线免费观看视视频| 亚洲电影免费观看高清完整版在线| 国产精品第10页| 久久av红桃一区二区小说| 久久久精品久久久久| 国产精品福利片| 国产精品网站入口| 伊人伊成久久人综合网站| 成人av在线亚洲| 中文字幕免费精品一区高清| 亚洲成人激情图| 日韩美女毛茸茸| 国产精品香蕉在线观看| 中国日韩欧美久久久久久久久| 欧美日韩国产一区中文午夜| 国产精品欧美久久久| 欧美大片免费观看在线观看网站推荐| 国产主播喷水一区二区| 国内精品模特av私拍在线观看| 国产成人自拍视频在线观看| 日本一区二区在线免费播放| 午夜精品一区二区三区视频免费看| 日本欧美国产在线| 国内精品美女av在线播放| 欧美日韩性视频在线| 国内免费久久久久久久久久久| 91免费看片在线| 亚洲xxx大片| 欧美乱妇40p| 亚洲一区二区国产| 最近2019年手机中文字幕| 国产精品99久久99久久久二8| 国产成人精品一区| 国产精品一区=区|