2012-09-10 32 views
5

是否可以使用命名的UIPasteboard(即不是全局的)在两个应用程序之间传输数据?命名应用程序之间的UIPasteboard?

  • 的应用程序是完全相互独立的,所以从不同的厂商有不同的包ID
  • 我想使用一个名为纸板,所以在全球纸板用户自己的内容不会被覆盖

苹果的文件说:

Pasteboards可以是公共或私有。公共粘贴板称为系统粘贴板;私人粘贴板由应用程序创建,因此被称为应用程序粘贴板。

这意味着粘贴板既可以是“全局的,公共的”,也可以是“命名的和私有的”。

我创建了两个具有不同包ID的应用程序,似乎可以使用专用的命名粘贴板将内容从一个应用程序传递到另一个应用程序。但是,这仅仅是iOS模拟器的一个特性,还是真的支持但没有很好记录的东西?

感谢您的任何见解!

回答

9

您可以设置自定义字符串为您的纸板价值和使用,在您的应用,使您的应用程序与你的独特的字符串来访问该值:

UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:YES]; 

[pasteboard setPersistent:YES]; 

//save the unique identifier string that we created earlier 
[pasteboard setString:@"your message"]; 
+0

感谢您的回答。你特别说“你的应用程序”,但我更关心“任何两个应用程序”,而不一定是来自同一供应商的两个应用程序。 – Matthew

+1

无论应用程序是你的还是来自任何人,只要他们知道密钥,那么你很好。这与OpenUDID使用的方法相同,这是使用此方法在任何应用程序中共享唯一键的一种方法。 – rooster117

+0

真棒,再次感谢。最佳答案! :-D – Matthew

1

它的支持。但请记住,如果两个设置了它的应用程序都被删除,那么指定的粘贴板将会消失,因此请勿使用它来存储您没有备份的任何内容。

+0

嗯,我不明白为什么会有一个命名的粘贴板和两个应用程序的任何关联。除非iOS跟踪哪些应用程序访问特定的命名粘贴板。 (这听起来有点疯狂)#brainhurts – Matthew

+0

@Noah:我正在寻找这个,但我找不到它,但我观察到它......是否记录在某处? 我还可以问,即使在备份/清洁/恢复后,粘贴板是否仍然存在? – LolaRun

+0

我不相信它被记录在任何地方 - 只是通过实验发现。很确定备份/恢复也会擦除粘贴板。 –

相关问题