2015-07-03 28 views
6

我有一個IOS 8應用程序,它正在成功地將記錄寫出到其默認的Cloudkit容器中。現在我希望在OS X下的另一個應用程序中閱讀和處理這些記錄。我已經使用iCloud訪問設置了新應用程序,並且選中了「指定自定義容器」選項。這已成功找到原始應用程序的容器和I在功能界面上沒有任何錯誤需要修復使用Swift訪問非默認的Cloudkit容器

我所有的搜索都告訴我「有可能由同一個開發人員簽署的兩個應用程序共享同一個容器」但沒有我可以找到的教程文檔告訴我如何訪問自定義容器中的數據所有示例似乎都以'let container = CKContainer.defaultContainer()'開頭,但是我不想從默認容器訪問記錄,我想要自定義容器

Apple文檔建議使用init( )結構,但也讓我感到困惑。這似乎是一個簡單的要求。希望有人能給我一個簡單的解決方案。

回答

9

這是未經測試的代碼,但我瞭解的是自定義容器允許您跨多個應用程序共享這些容器。在Capabilities窗格中,您可以選擇您選擇在此應用程序中使用的所有其他應用程序中可用的所有容器中的哪一個。默認容器是iCloud.com.MyCompany.MyApp,應該自動選擇。現在,您已經指定你想要的容器,你可以使用我的自定義下的容器中init()

let container = CKContainer(identifier: "iCloud.com.MyCompany.OneOfMyApps") 

基本上,該標識符是iCloud的功能列出的標識符的一個窗格中訪問它們。

+0

花了我一段時間 - 謝謝! – brainray

+0

@ imas145我可以通過編程方式從授權中獲取標識符嗎?將它設置兩次是沒有意義的。 (一個在權利,另一個在CKContainer) –