2012-09-10 46 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

我不相信它被記錄在任何地方 - 只是通過實驗發現。很確定備份/恢復也會擦除粘貼板。 –

相關問題