无论我做什么,UIPasteboard都是顽固坚持

时间:2011-10-06 05:41:26

标签: iphone ios uipasteboard

我正在创建一个应用程序UIPasteboard,其应用程序的标识符作为名称(例如com.example.app.pboard),如文档中所示。

所有的复制和粘贴工作,但该死的东西永远不会消失。我每次访问它时都将persistent属性显式设置为NO,以便将其复制到其中,每次我的应用程序启动时,我甚至都会调用UIPasteboard的+removePasteboardWithName:

但是每当我看到它时,尽管应用程序重新启动,我复制到它上面的最新内容仍然存在。

是什么给出了?

2 个答案:

答案 0 :(得分:1)

不知道你为什么尝试不起作用,这里有两个猜测和一个可能的解决方案:

  • 删除粘贴板可能会在应用程序退出时执行,因此在应用程序终止或后台运行之前它不会执行?
  • 调用删除然后询问项目可能会在同一“位置”重新创建它,因此项目仍然存在。

您可以通过在离开或进入应用时将粘贴板的items设置为nil来解决此问题。

答案 1 :(得分:0)

您可以将UIPasteboard设置为持久性。符合Apple's document

  

setPersistent:   一个布尔值,指示粘贴板是否持久。   当粘贴板持久存在时,它将继续存在于应用程序终止之后并且跨系统重新启动。不持久的应用程序粘贴板只会持续到拥有(创建)应用程序退出。系统范围的通用粘贴板是持久的。命名,特定于应用程序的粘贴板不是永久性的。

更新:对于iOS 10,UIPasteboard会自动设置持久性。

  

请注意   从iOS 10开始,系统自动设置粘贴板持久性。如果您尝试在粘贴板上设置setPersistent:属性,Xcode会发出弃用警告。   如本文档的“概述”部分所述,使用共享容器而不是命名持久性粘贴板。