看一下iCloud是如何工作的
iCloud 馬上就要和廣大果迷見面了,相信不少果迷已經(jīng)對該服務(wù)期待已久。被冠以 iOS 5 最重要更新之一的 iCloud 到底是如何為用戶服務(wù)的呢?下面帶果迷們一起了解一下 iCloud 的內(nèi)部構(gòu)造。

iCloud 最簡單的存在形式其實(shí)就是一個特定的文件夾,它位于 iOS 設(shè)備的 /private/var/mobile/Library/Mobile Documents/ 目錄下。該目錄中保存有各應(yīng)用共享至云端的所有應(yīng)用數(shù)據(jù)。
應(yīng)用程序?qū)υ撃夸浻胁糠肿x寫權(quán)限,該權(quán)限是開發(fā)人員特有的。對于密碼鑰匙串,開發(fā)人員可以在各應(yīng)用間共享云端數(shù)據(jù)。比如,X 公司開發(fā)的所有應(yīng)用可以共享、查看以及更新相同的文件集。你無法共享你開發(fā)者賬戶以外的數(shù)據(jù),所以我的應(yīng)用無法看到 X 公司的文件,反之亦然。
iOS 系統(tǒng)監(jiān)控著 Mobile Documents 文件夾。當(dāng)文件被更改,設(shè)備會自動的將這些更改上傳至云端。從而這些更改就可以傳輸至同一賬號綁定的所有設(shè)備上。這些操作都由本地操作系統(tǒng)服務(wù)進(jìn)行處理,應(yīng)用程序不直接參與其中。
相反,應(yīng)用程序通過訂閱不同種類的通知來讓應(yīng)用知道***發(fā)生的更改。然后,它們可以通過對比本地和 iCloud 端的數(shù)據(jù)差異從而來處理數(shù)據(jù)版本沖突。
至于開發(fā)者如何做就是他們的事了。他們可以選擇“最近更改有效”策略。或者他們可以結(jié)合一些其他方式的更改。應(yīng)用程序的職責(zé)就在于確保不同硬件設(shè)備單元上的數(shù)據(jù)保持一致,同時也需要可用的網(wǎng)絡(luò)連接來處理這種一致性。
當(dāng)用戶失去網(wǎng)絡(luò)連接的時候,麻煩事就來了。比如,你也許在沒有網(wǎng)絡(luò)連接的航班上編輯待辦事項(xiàng),與此同時你的伴侶在他或她所在的城市正在更新同一份待辦事項(xiàng)。開發(fā)者們?yōu)榇斯ぷ髁藬?shù)月,研究如何在同時接受雙方修改的前提下結(jié)合這些更改并更新目標(biāo)文件的策略。
***,iCloud API 接口方式或許會很少。它實(shí)際上就只是一個異地同步的存儲文件夾。對于開發(fā)者來說,訣竅在于如何考慮時間、空間、連接不同方面對文件夾的影響,因?yàn)樵撐募A必須適應(yīng)于用戶的更新。