2012-09-10 15 views
5

Ist es möglich, ein benanntes UIPasterboard (dh nicht das globale) zu verwenden, um Daten zwischen zwei Apps zu übertragen?Benannt UIPasteboard zwischen Apps?

  • die Apps sind völlig unabhängig voneinander, so haben unterschiedliche Bündel IDs von verschiedenen Anbietern
  • Ich möchte einen Namen Pappe verwenden, so dass die eigenen Inhalte des Benutzers in der globalen Pappe nicht überschrieben

Apples docs sagen:

Pasteboards öffentlich oder privat sein kann. Öffentliche Pasteboards werden Systempasteboards genannt. Private Pastetchen werden von Anwendungen erstellt und daher als Anwendungsplatinen bezeichnet.

Die Implikation ist, dass eine Pasteboard entweder "global und öffentlich" oder "named und privat" sein kann.

Ich habe zwei Anwendungen, mit verschiedenen Bündel-IDs und scheinen in der Lage zu sein, Sachen von einer Anwendung zu übergeben die andere eine private namens Pappe verwenden. Aber ist das nur eine Funktion des iOS-Simulators oder etwas, das wirklich unterstützt, aber nicht gut dokumentiert ist?

Vielen Dank für einen Einblick!

Antwort

9

Sie können eine benutzerdefinierte Zeichenfolge für Ihren Pappe Wert gesetzt und verwenden, die auf Ihre Anwendungen so Ihre Anwendungen den Wert mit Ihrer einzigartigen String zuzugreifen:

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

[pasteboard setPersistent:YES]; 

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

Danke für Ihre Antwort. Sie sagen ausdrücklich "Ihre Apps", aber ich mache mir mehr Gedanken über "zwei beliebige Apps", nicht unbedingt zwei Apps desselben Herstellers. – Matthew

+1

Ob die Apps von Ihnen oder von jedem sind, solange sie den Schlüssel kennen, geht es Ihnen gut. Dies ist die gleiche Methode, die OpenUDID verwendet. Dies ist eine Möglichkeit, einen eindeutigen Schlüssel unter jeder App mit dieser Methode zu teilen. – rooster117

+0

Super, danke nochmal. Top Antwort! :-D – Matthew

1

Es unterstützt. Beachten Sie jedoch, dass das benannte Pasteboard ausgeblendet wird, wenn beide Apps, die es eingerichtet haben, gelöscht werden. Verwenden Sie es daher nicht zum Speichern von Daten, für die Sie kein Backup erstellt haben.

+0

Hmm, ich verstehe nicht, warum es eine Assoziation mit einem benannten Pasteboard und zwei Apps geben würde. Es sei denn, iOS verfolgt, welche Apps auf ein bestimmtes benanntes Pasteboard zugreifen. (Und das klingt ein bisschen verrückt) #brainhurts – Matthew

+0

@Noah: Ich war für diese Suche, aber ich kann ihn nicht finden, aber ich beobachtete sie ... es irgendwo dokumentiert ist? Kann ich auch fragen, ob die Pasteboards auch nach einem Backup/Clean/Restore bestehen bleiben? – LolaRun

+0

Ich glaube nicht, dass es irgendwo dokumentiert ist - nur durch Experimente entdeckt. Ziemlich sicher Backup/Restore wird auch die Pasteboards wischen. –