EverBox开发笔记-2-iCloud-KeyValueStore
下午抽了點時間,測試了下iCloud的Key/Value Store,主要用到NSUbiquitousKeyValueStore:
獲取實例對象:
NSUbiquitousKeyValueStore * store = [NSUbiquitousKeyValueStore defaultStore];
保存數據:
[store setString:@”string to save” forKey:@”keyword”];
獲取數據:
[store stringForKey:@”keyword”];
還有個隱含的方法會被系統自動調用,不過假如需要(App啟動或退出時)馬上跟云端同步數據的話,可以:
[store synchronize];
就是這幾個簡單的令人發指的API,就實現了iCloud Key/Value Storage的基本功能,基本原理是這樣子:
1,存儲的內容會先被保存到本地(in-memory)。
2,iOS會自動的、周期性的,將本地數據保存到云端。
3,通過偵聽store,App可以在云端數據被修改時得到通知來更新數據。
?
一開始寫測試代碼時,從iOS開發者網站上下了《Adopting iCloud Storage – Part 1》,準備跟著視頻學習使用iCloud API,結果效率低得驚人,配置“Entitlement”時,更因為視頻語焉不詳,測試失敗,最后還是從這個官方教程找到詳細的配置方式。
解決了配置“Entitlement”的問題后,調整了下測試步驟:
1,App啟動時,調用[store synchronize]向云服務器獲取數據,并將數據顯示在界面。
2,在數據顯示界面修改數據,并調用[store setString: forKey:]保存數據。
3,刪除App后重新安裝,回到步驟1,看能否看到剛才保存的數據。
測試結果:
1,App重新啟動時,[store stringForKey:]什么也獲取不到。
2,調用[store synchronize]后,過一段時間(尚不知如何度量,網絡情況良好大約三秒內),即可獲取到已經保存過的內容。
在這簡單的接口里面,不知隱含了多少后臺工作,Apple為開發者考慮的實在周到。整個測試花了150分鐘左右,其中30分鐘修改“Entitlement”配置,30分鐘解決一個非常低級的問題——測試界面中,放了個“sync”按鈕,用來主動發起跟云端的數據同步,但卻忘了在IB中將消息處理函數和觸摸消息連接起來,好在有高人指出了這個錯誤:)
轉載于:https://www.cnblogs.com/tara/archive/2012/06/25/2562837.html
總結
以上是生活随笔為你收集整理的EverBox开发笔记-2-iCloud-KeyValueStore的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Office计算机心得,2020计算机实
- 下一篇: 维纳数学家的年龄~