在iOS中包归,我們使用ClouldKit框架來操作Apple提供的iClould服務(wù)课梳,將我們的數(shù)據(jù)保存到云上距境。(官方文檔)
1>.首先,ClouldKit使用container來管理和處理數(shù)據(jù)祭阀,container是iClould分配給每個app的space鹉戚。當(dāng)你在Xcode中開啟iClould的時候就會默認(rèn)生成一個container,當(dāng)然鲜戒,你也可以自己定義一個。每個container里面包含兩個數(shù)據(jù)庫(privateDatabase & publicDatabase)抹凳。privateDatabase里的數(shù)據(jù)只能被用戶自己訪問遏餐,相反,publicDatabase里的數(shù)據(jù)可以被所有同一個app的用戶訪問到赢底。
下面是ClouldKit和我們平時用的database的概念對應(yīng)關(guān)系
record Type -------- table
records ? ? ? ---------table rows
2.> ClouldKit支持一下類型的存儲
NSData (single bytes)
NSDate (date and time)
NSNumber (both Int and Double)
NSString (or String in Swift)
NSArray (list)
CKReference (used to create relationships between objects)
CLLocation (location)
CKAsset (file)
(CK開頭的類型是ClouldKit框架里面的)
3.前提和說明:
如果用戶沒有登錄他的iClould賬號失都,那么他只能從publicDatabase獲取數(shù)據(jù),僅此二期幸冻,其他的操作都不好使粹庞。
container一旦創(chuàng)建,就永遠(yuǎn)不可刪除洽损,只有record types可已刪除
你可以在CloudKit Dashboard中查看操作app的container中的記錄
4.下面正式開始:
第一:下面的Team里面必須設(shè)置真實存在的apple ID. 不能設(shè)置為none.
第二:開啟iClould服務(wù)庞溜,勾選Key-value storage和ClouldKit,當(dāng)下面出現(xiàn)四個打鉤的Steps的時候碑定,標(biāo)示一切okay了流码。(如果這一步失敗的話,就重復(fù)嘗試一下延刘,再不行漫试,就可能是Boundle identifier的問題了)
這時候工程里面會自動添加ClouldKit.framework和一個.entitlements的文件,如下:
好了碘赖,下面就是純coding了驾荣,完整的demo可以在這里下載到
可能會出現(xiàn)的問題:
解決方法: 進入CloudKit Dashboard
在下圖中的彈出框中勾選第一項:Record ID即可,別忘了點擊右下角的Save按鈕.