iCloud 第一彈 - 同步偏好設(shè)置

因在之前自己寫的一款 RSS 閱讀器 應(yīng)用中职辨,有不少用戶反饋說希望添加個 iCloud 同步訂閱列表的功能,加上自己也對 iCloud 這一塊的不熟悉斯嚎,所以閑來研究下 iCloud 的內(nèi)容土陪。上述應(yīng)用是支持 iPhone 和 iPad 的,兩端同時(shí)使用時(shí)朗涩,沒有同步功能的話,的確是一件很蛋痛的事情绑改,這里先來分享下如果通過 iCloud 來同步應(yīng)用的偏好設(shè)置谢床。

配置環(huán)境

在項(xiàng)目中配置下 iCloud 的證書,現(xiàn)在 apple 相關(guān)的東西還是比較友好了厘线,在 Xcode 中勾選相應(yīng)配置就可以自動生成對應(yīng)的證書识腿,如下:

圖片.png

這里只用到了 Key-value storage,CloudKit 是可以不勾選的造壮。

通過模擬器來調(diào)試 iCloud

在模擬器中調(diào)試 iCloud 是和真機(jī)類似的渡讼,都是在設(shè)置中登錄 iCloud 的賬號,但是在模擬器中耳璧,iCloud 是不是自動同步的成箫,需要檢查同步的時(shí)候需要手動執(zhí)行,我們通過 Xcode 中的 Debug 功能來執(zhí)行:

圖片.png

同步

  1. 保存 Key-value 到 iCloud

    NSUbiquitousKeyValueStore.default().set(true, forKey: kOffLineRead)
    

    在修改偏好設(shè)置的時(shí)候旨枯,把相應(yīng)的值同步到 iCloud蹬昌。

  2. 監(jiān)聽變化

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        NotificationCenter.default.addObserver(self, selector: #selector(updateCloudItems(_ :)), name: NSUbiquitousKeyValueStore.didChangeExternallyNotification, object: NSUbiquitousKeyValueStore.default())
    }
    
    func updateCloudItems(_ notification: Notification) {
        guard let userInfo = notification.userInfo else {
            return
        }
        guard let reason = userInfo[NSUbiquitousKeyValueStoreChangeReasonKey] as? Int else {
            return
        }
        if reason == NSUbiquitousKeyValueStoreServerChange ||
            reason == NSUbiquitousKeyValueStoreInitialSyncChange {
            guard let changeKeys = userInfo[NSUbiquitousKeyValueStoreChangedKeysKey] as? [String] else {
                return
            }
            if changeKeys.contains(kOffLineRead) {
                if let value = NSUbiquitousKeyValueStore.default().object(forKey: kOffLineRead) as? Bool {
                    UserDefaults.standard.set(value, forKey: kOffLineRead)
                    UserDefaults.standard.synchronize()
                }
            }
        }
    }
    

    因?yàn)檫@里的偏好設(shè)置應(yīng)用了整個應(yīng)用,所以在程序啟動時(shí)就去監(jiān)聽 iCloud 的變化攀隔,如果只是某個頁面的展示內(nèi)容皂贩,可以考慮在性展示的時(shí)候再去監(jiān)聽栖榨。這里需要注意的是,iCloud 對 Key-value 的大小是有限制的明刷,以前好像是2M治泥,現(xiàn)在沒有測試過,所以大的東西不要用 Key-value 來保存遮精。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末居夹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子本冲,更是在濱河造成了極大的恐慌准脂,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檬洞,死亡現(xiàn)場離奇詭異狸膏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)添怔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門湾戳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人广料,你說我怎么就攤上這事砾脑。” “怎么了艾杏?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵韧衣,是天一觀的道長。 經(jīng)常有香客問我购桑,道長畅铭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任勃蜘,我火速辦了婚禮硕噩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缭贡。我一直安慰自己炉擅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布匀归。 她就那樣靜靜地躺著坑资,像睡著了一般。 火紅的嫁衣襯著肌膚如雪穆端。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天仿便,我揣著相機(jī)與錄音体啰,去河邊找鬼攒巍。 笑死,一個胖子當(dāng)著我的面吹牛荒勇,可吹牛的內(nèi)容都是我干的柒莉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沽翔,長吁一口氣:“原來是場噩夢啊……” “哼兢孝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仅偎,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤跨蟹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后橘沥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窗轩,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年座咆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痢艺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡介陶,死狀恐怖堤舒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哺呜,我是刑警寧澤植酥,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站弦牡,受9級特大地震影響友驮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驾锰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一卸留、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椭豫,春花似錦耻瑟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裸扶,卻和暖如春框都,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呵晨。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工魏保, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熬尺,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓谓罗,卻偏偏與公主長得像粱哼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子檩咱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容