2012-09-10 4 views
5

Est-il possible d'utiliser un UIPasteboard nommé (c.-à-d. Non global) pour transférer des données entre deux applications?Nommé UIPasteboard entre les applications?

  • les applications sont complètement indépendants les uns des autres, ont donc des identifiants différents faisceaux de différents fournisseurs
  • Je voudrais utiliser un nom de carton, donc n'est pas remplacé
  • propre contenu dans le conteneur global de l'utilisateur

docs d'Apple disent:

peuvent être publics du conteneur de données ou privé. Les «pasteboards» publics sont appelés des «pasteboards» système; Les tables de montage privées sont créées par des applications et sont donc appelées des tableaux de montage d'applications.

L'implication est qu'une table de montage peut être "globale et publique" ou "nommée et privée".

J'ai créé deux applications, avec des ID de regroupement différents, et semble pouvoir transmettre des données d'une application à l'autre à l'aide d'une table de montage nommée privée. Mais est-ce juste une caractéristique du simulateur iOS, ou quelque chose qui est vraiment supporté mais pas bien documenté?

Merci pour votre avis!

Répondre

9

Vous pouvez définir une chaîne personnalisée pour votre valeur et utiliser cette table de montage à travers vos applications afin que vos applications doivent accéder à la valeur avec votre chaîne unique:

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

[pasteboard setPersistent:YES]; 

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

Merci pour votre réponse. Vous dites spécifiquement "vos applications", mais je suis plus préoccupé par "deux applications", pas nécessairement deux applications du même fournisseur. – Matthew

+1

Si les applications sont à la fois la vôtre ou de n'importe qui tant qu'ils sont conscients de la clé, alors vous allez bien. C'est la même méthode que OpenUDID utilise qui est un moyen de partager une clé unique parmi n'importe quelle application utilisant cette méthode. – rooster117

+0

Génial, merci encore. Bonne réponse :-D – Matthew

1

Il est pris en charge. Gardez à l'esprit, cependant, que la table de montage nommée disparaîtra si les deux applications qui la configurent sont supprimées, donc ne l'utilisez pas pour stocker tout ce dont vous n'avez pas de sauvegarde.

+0

Hmm, je ne comprends pas pourquoi il y aurait une association avec un tableau de bord nommé et deux applications. À moins que iOS ne garde une trace des applications qui accèdent à un certain tableau de distribution nommé. (Et ça sonne un peu dingue) #brainhurts – Matthew

+0

@Noah: Je cherchais ça, mais je ne pouvais pas le trouver, mais je l'ai observé ... est-ce qu'il est documenté quelque part? Puis-je également demander si les tables de montage persistent même après une sauvegarde/nettoyage/restauration? – LolaRun

+0

Je ne crois pas que ce soit documenté nulle part, juste découvert par l'expérimentation. Assez sûr que la sauvegarde/restauration effacera les tables de montage. –