我只有NSUbiquitousKeyValueStore出現問題,並且無法在兩臺設備間可靠同步。它開始讓我發瘋。狂。NSUbiquitousKeyValueStore同步問題
我看我的代碼,請調用:
[[NSUbiquitousKeyValueStore defaultStore] setObject:_someData forKey:@"SomeData"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
但更多的時間比不,該數據一直沒有出現在其他設備上。
我已經看到它在幾秒鐘內同步,其他時間我已經等了一個小時,從未見過同步。我將設備插入xcode並開始調試,有時數據會突然彈出,有時則不會。有時候確實如此。
完成此調用後,退出並重新啓動應用程序,如果我閱讀它,則會看到舊數據,而不是我剛剛發佈的新數據。在同一臺設備上。
,當應用程序啓動時,我做出了一個電話:
_someData = [[NSUbiquitousKeyValueStore defaultStore] stringForKey:@"SomeData"];
我假設有一個需要運行沒有初始化代碼。沒有我找到的例子。
當它工作時,它工作得很好。
然後今晚我一直在尋找的設備日誌,發現我的最後一個出口後,這一權利(並嘗試發送數據):
Jul 8 21:32:03 unknown syncdefaultsd[17296] <Warning>: Error writing storage for com.mycompany.myapp to /private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences/com.mycompany.myapp.plist: Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0xde80d40 {NSFilePath=/private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences, NSUnderlyingError=0xde80b20"The operation couldn’t becompleted. No such file or directory"}
這條道路不是從我的應用程序沙箱(錯誤GUID的有效途徑),所以我想知道這是否是我的問題的根源。我在開發過程中會刪除並重新安裝應用程序,因此我不知道是否有某個舊路徑緩存在某處,並且正試圖同步這些數據。有沒有辦法清除它?
我知道我的所有權利都設置正確,因爲它有時會工作。
[[NSUbiquitousKeyValueStore defaultStore] synchronize]
正在返回YES
。
有沒有其他人看過這個問題或那個錯誤?當我的應用程序啓動並將數據發送到雲時,是否還有其他需要做的事情?根據文檔和示例,它看起來很容易。
我面臨同樣的問題,這讓我瘋狂!只是試圖找出爲什麼它不同步。 – 2012-08-04 04:46:38
我有完全相同的問題。我發現刪除應用程序的容器常常導致問題浮出水面。一旦應用程序的兩個實例都有一個有效的容器,它們將正確同步。一旦嘗試通過刪除容器來測試「第一次體驗」,應用程序實例可能永遠不會從icloud獲取UBKV。我還沒有弄清楚這是否會在現實世界中出現。 – 2012-11-29 22:23:45
這就是我所看到的。如果用戶從設備中刪除了應用程序,然後再次重新安裝,期望從雲UBKV獲取他們的數據,這種情況不會出現嗎?在我的情況下(一場比賽),這是我想處理的一個案例。 – 2012-11-30 02:21:29