2011-10-06 47 views
0

我正在創建一個應用程序UIPasteboard,其中的應用程序標識符是一個名稱(例如com.example.app.pboard),如文檔中所建議的。UIPasteboard頑固執着,不管我做什麼

所有的複製和粘貼工作,但該死的東西永遠不會消失。我每次訪問它時都會將其persistent屬性明確設置爲NO,每次我的應用程序啓動時,我甚至會打電話給UIPasteboard的+removePasteboardWithName:

但每次看它時,儘管應用程序重新啓動,但我最近複製到它的東西始終存在。

什麼給?

+0

您是否得到了解決方案?我遇到了同樣的問題。從一個應用程序中刪除了一個粘貼板。去了一個不同的應用程序,仍然能夠閱讀的內容! (不,它不被重新創建)。 – DBD

回答

1

不知道爲什麼你正在嘗試不工作,這裏有兩個猜測和可能的解決方案:

  • 刪除粘貼板,可以預計將在從應用程序退出時執行,所以它不會執行,直到應用程序被終止或背景?
  • 調用刪除,然後要求項目可能會再次在相同的「地點」重新創建,所以項目仍然存在。

你也許可以通過設置粘貼板的items在離開或進入應用程序時爲零來解決這個問題。

+0

那麼,第一個猜測不可能是正確的,因爲如果我想保持一個有效的多任務應用程序的粘貼板,那麼永遠不會有有效的時間去除它。也就是說,你的解決方案工作 - 在應用程序啓動時,我只需要粘貼板並將'items'核武。仍然無法解釋它,但確實有效。謝謝! –

0

您可以將UIPasteboard設置爲持久性。雅閣Apple's document

setPersistent: 一個布爾值,指示剪貼板是否是永久性的。 當粘貼板持久存在時,它會繼續存在於應用程序終止和系統重新啓動之後。只有在擁有(創建)應用程序退出之前,不持久性的應用程序粘貼板纔會保留。系統通用的粘貼板是持久的。命名的,應用程序特定的粘貼板不是持久的。

更新:對於iOS 10,UIPasteboard會自動設置持久性。

注意 從iOS 10開始,系統自動設置紙板持久性。如果您嘗試在粘貼板上設置setPersistent:屬性,則Xcode會發出棄用警告。 而不是命名的持久性粘貼板,請使用共享容器,如本文檔的概述部分所述。

相關問題