第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

iCloud基礎(chǔ)知識(shí)和代碼示例

iCloud基礎(chǔ)知識(shí)和代碼示例

元芳怎么了 2019-11-22 14:23:41
作為一個(gè)初學(xué)者,我正在為iCloud奮斗。有一些示例,但是它們通常都非常詳細(xì)(在開(kāi)發(fā)人員論壇上,有一個(gè)針對(duì)iCloud和CoreData的示例非常龐大)。在蘋果的文檔都OK,但我仍然無(wú)法看到大局。因此,請(qǐng)?jiān)试S我,其中一些問(wèn)題是非?;镜?,但可能很容易回答。上下文:我有一個(gè)非常簡(jiǎn)單的iCloud應(yīng)用程序正在運(yùn)行(下面是完整的示例代碼)。僅向用戶顯示一個(gè)UITextView,并且他/她的輸入保存在一個(gè)名為text.txt的文件中。在此處輸入圖片說(shuō)明txt文件被推送到云中,并可供所有設(shè)備使用。完美運(yùn)行,但是:主要問(wèn)題:不使用iCloud的用戶呢?啟動(dòng)我的應(yīng)用程序時(shí)(請(qǐng)參見(jiàn)下面的代碼),我會(huì)檢查用戶是否啟用了iCloud。如果啟用了iCloud,則一切正常。該應(yīng)用程序繼續(xù)運(yùn)行,并在云中查找text.txt。如果找到,它將加載它并顯示給用戶。如果在云中找不到text.txt,它將僅創(chuàng)建一個(gè)新的text.txt并將其顯示給用戶。如果用戶未啟用iCloud,則不會(huì)發(fā)生任何事情。如何使非iCloud用戶仍然可以使用我的文本應(yīng)用程序?還是我只是忽略它們?我是否需要為非iCloud用戶編寫單獨(dú)的功能?即我僅從documents文件夾中加載text.txt的函數(shù)?蘋果寫道:以與對(duì)待應(yīng)用程序沙箱中所有其他文件相同的方式對(duì)待iCloud中的文件。但是,就我而言,再也沒(méi)有“普通”應(yīng)用程序沙箱了。在云中。還是我總是先從磁盤加載我的text.txt,然后再與iCloud檢查是否還有最新信息?相關(guān)問(wèn)題:文件結(jié)構(gòu)-沙箱與云也許我的主要問(wèn)題是對(duì)iCloud應(yīng)該如何工作的根本誤解。當(dāng)創(chuàng)建UIDocument的新實(shí)例時(shí),我將不得不覆蓋兩個(gè)方法。首先- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError從云-(id)contentsForType:(NSString *)typeName error:(NSError **)outError中獲取文件,然后將文件添加到云中。我是否必須合并單獨(dú)的功能,這些功能也會(huì)將text.txt的本地副本保存到我的沙箱中?這對(duì)非iCloud用戶有效嗎?據(jù)我了解,iCloud會(huì)自動(dòng)保存text.txt的本地副本。因此,我不需要將任何內(nèi)容保存到應(yīng)用程序的“舊”沙箱中(即,它曾經(jīng)在iCloud之前的舊年代使用)?,F(xiàn)在,我的沙箱完全是空的,但我不知道這是否正確。我是否應(yīng)該在其中保留另一個(gè)text.txt副本?感覺(jué)就像混亂的數(shù)據(jù)結(jié)構(gòu)...因?yàn)樵浦杏幸粋€(gè)text.txt,設(shè)備上的iCloud沙箱中有一個(gè)(即使我處于脫機(jī)狀態(tài)也可以使用),而舊的沙箱中有第三個(gè)我的應(yīng)用...我的代碼:一個(gè)簡(jiǎn)單的iCloud示例代碼這大致基于我在開(kāi)發(fā)人員論壇和WWDC會(huì)話視頻中找到的示例。我將其剝離到最低限度。我不確定我的MVC結(jié)構(gòu)是否良好。該模型位于AppDelegate中,并不理想。歡迎提出任何改善建議。
查看完整描述

3 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊

我只是重新閱讀了文檔,看來(lái)我的一般方法是錯(cuò)誤的。我應(yīng)該首先在沙箱中創(chuàng)建文件,然后將其移動(dòng)到云中。換句話說(shuō),Apple似乎建議我始終保持同一個(gè)文件的三個(gè)版本:一個(gè)位于我的應(yīng)用程序目錄中,一個(gè)位于設(shè)備的iCloud demon目錄中(如果脫機(jī)也可以訪問(wèn)),另一個(gè)云端:


應(yīng)用程序使用與本地文件和目錄相同的技術(shù)來(lái)管理iCloud中的文件和目錄。iCloud中的文件和目錄仍然只是文件和目錄。您可以打開(kāi)它們,創(chuàng)建它們,移動(dòng)它們,復(fù)制它們,對(duì)其進(jìn)行讀寫,刪除它們或您可能想要執(zhí)行的任何其他操作。本地文件和目錄與iCloud文件和目錄之間的唯一區(qū)別是用于訪問(wèn)它們的URL。iCloud文件和目錄的URL相對(duì)于相應(yīng)的iCloud容器目錄,而不是相對(duì)于應(yīng)用程序沙箱的URL。


要將文件或目錄移動(dòng)到iCloud:


在應(yīng)用程序沙箱中本地創(chuàng)建文件或目錄。在使用時(shí),文件或目錄必須由文件演示者(例如UIDocument對(duì)象)管理。


使用URLForUbiquityContainerIdentifier:方法檢索要在其中存儲(chǔ)該項(xiàng)目的iCloud容器目錄的URL。使用容器目錄URL構(gòu)建新的URL,該URL指定該項(xiàng)目在iCloud中的位置。調(diào)用NSFileManager的setUbiquitous:itemAtURL:destinationURL:error:方法將項(xiàng)目移動(dòng)到iCloud。永遠(yuǎn)不要從應(yīng)用程序的主線程調(diào)用此方法;這樣做可能會(huì)長(zhǎng)時(shí)間阻塞主線程,或者導(dǎo)致應(yīng)用程序自己的文件提交者之一陷入僵局。當(dāng)您將文件或目錄移動(dòng)到iCloud時(shí),系統(tǒng)會(huì)將該項(xiàng)從應(yīng)用程序沙箱中復(fù)制到私有本地目錄中,以便可以由iCloud守護(hù)程序進(jìn)行監(jiān)視。即使該文件不再位于沙箱中,您的應(yīng)用仍然可以完全訪問(wèn)它。盡管該文件的副本仍保留在當(dāng)前設(shè)備的本地,但該文件也將發(fā)送到iCloud,以便可以將其分發(fā)到其他設(shè)備。iCloud守護(hù)程序處理確保本地副本相同的所有工作。因此,從您的應(yīng)用程序角度來(lái)看,文件僅位于iCloud中。


您必須使用文件協(xié)調(diào)器對(duì)象對(duì)iCloud中的文件或目錄進(jìn)行所有更改。這些更改包括移動(dòng),刪除,復(fù)制或重命名項(xiàng)目。文件協(xié)調(diào)器確保iCloud守護(hù)程序不會(huì)同時(shí)更改文件或目錄,并確保將您所做的更改通知其他相關(guān)方。


但是,如果您深入研究有關(guān)setUbiquitous的文檔,則會(huì)發(fā)現(xiàn):


使用此方法將文件從當(dāng)前位置移動(dòng)到iCloud。對(duì)于位于應(yīng)用程序沙箱中的文件,這涉及從沙箱目錄中物理刪除文件。(系統(tǒng)擴(kuò)展了應(yīng)用程序的沙箱特權(quán),使其可以訪問(wèn)移動(dòng)到iCloud的文件。)您還可以使用此方法將文件移出iCloud并移回本地目錄。


因此,這似乎意味著文件/目錄將從本地沙箱中刪除,并移至云中。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

我一直在使用您的示例,我喜歡它來(lái)幫助我掌握iCloud的基礎(chǔ)知識(shí)。現(xiàn)在,我正在為您自己的應(yīng)用程序解決您的問(wèn)題,該應(yīng)用程序必須使用本地存儲(chǔ)的內(nèi)容來(lái)支持該應(yīng)用程序的現(xiàn)有用戶,就我所知,這些內(nèi)容可能會(huì)或可能不會(huì)使用iCloud創(chuàng)建這些情況:

情況:

  1. 新的用戶

    • 有icloud-在icloud中創(chuàng)建文檔

    • 沒(méi)有icloud-在本地創(chuàng)建文檔

  2. 現(xiàn)有用戶

    • 剛剛刪除-將以前的icloud文檔遷移到本地

    • 不只是刪除-將文檔打開(kāi)/保存到本地

    • 剛剛添加-將本地文檔遷移到icloud

    • 不只是添加-將文檔打開(kāi)/保存到icloud

    • 有icloud

    • 沒(méi)有icloud

如果有人刪除了iCloud,則對(duì)普遍存在的URL的調(diào)用不會(huì)返回nil嗎?如果是這種情況,我該如何將文檔遷移回本地存儲(chǔ)?我現(xiàn)在將創(chuàng)建一個(gè)用戶偏好設(shè)置,但似乎有些解決方法。

我覺(jué)得我這里缺少明顯的東西,所以如果有人可以看到它,請(qǐng)發(fā)出提示。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
  • 3 回答
  • 0 關(guān)注
  • 730 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)