Partage de données

Bonjour, je suis stagiaire et je travaille actuellement sur un projet pour iPhone et je suis amené a partager des données par mail.

Cependant la seule classe qu'il est possible de communiquer par mail est NNString.

Or je me retrouve avec des NSDictionary (et Event...) .

Je voulais savoir s'il y avais un moyen de coder des instances de ces classes sous forme de bytes pour les envoyer par mail ?

Merci d'avance je vois vraiment pas comment faire :/
Mots clés:

Réponses

  • MickMick Membre
    Bonjour,



    Peux-tu être plus précis sur tes besoins ?



    "sous forme de bytes" => NSData ?
  • Si ceux-ci sont par la suite convertible en NSString pour l'envois puis reconvertible en NSData pour la reception, ce serai parfait
  • AliGatorAliGator Membre, Modérateur
    Mais heu pourquoi tu te limites à  NSString ?

    Tu peux pas envoyer une pièce-jointe dans ton mail ?



    Tu sérialises tes données (si c'est qu'un NSDictionary ne contenant que des PLIST-Objects -- à  savoir NSString, NSData, NSArray, NSDictionary, de mémoire -- ça se fait en une ligne, sinon faut lire la doc Apple sur "Archives & Serialization", y'a un Programming Guide complet sur le sujet) comme ça tu as toute ta représentation de tes données sous forme d'un fichier, et tu le mets en pièce-jointe du mail, et basta, non ?
  • Ah oui en effet, je vais exploiter cette possibilité, merci

    Sinon en passant par les NSData, j'obtient : bplist00à”¿¿¿¿¿¿¿¿¿bcT$topX$objectsX$versionY$archiver¿¿¿à‘¿¿¿Qk€Â¯



    &'(/>?@AELMRWX]U$;nullà“

    ¿¿¿¿¿¿¿¿ZNS.objectsWNS.keysV$class¡€Â¡€€Wrequestà™

    !"#$%YrequestIDYoperationQaQrXpeerNameQfVpeerIDQv€€€Â¿Â¿Â¿Â¿Â¿Â¿Â¿



    Vous pensez qu'il est possible de récupérer l'objet intact ou c'est mort ?
  • AliGatorAliGator Membre, Modérateur
    Mais pourquoi diable s'obstiner avec une NSString ? Pense un peu à  ce que tu manipules !



    Là  tu as bien sérialisé un PLIST, ce qui te donne des données binaires (un peu on va dire pour faire un parallèle comme si tu avais mis tous tes objets dans un ZIP par exemple, enfin c'est une métaphore bien sûr). Et ce que tu cites dans ton message plus haut, c'est juste que tu as affiché les NSData (les données binaires après sérialisation de ton NSDictionary donc) comme si c'était une chaà®ne de caractère (alors que ça ne l'est pas du tout). Tu risques donc d'avoir des octets qui, interprétés en chaà®ne, te donnent des caractères lisibles, mais beaucoup d'autres octets qui ne correspondent pas du tout à  des caractères (et donc sont perdus dans l'histoire si tu essayes de les représenter comme une chaà®ne).



    Si tu as des NSData, comme c'est le cas ici, mets-les en pièce-jointe de ton mail. C'est fait pour.



    Ou alors trouve un moyen pour sérialiser ton NSDictionary sous une forme qui est affichable en NSString, comme le format XML ! (Mais bon dans tous les cas ça serait mieux de le mettre en pièce-jointe, non ?)



    Enfin bon, tout est expliqué dans la doc https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/SerializePlist/SerializePlist.html
  • D'accord, merci, mon NSDictionary contient autre chose que des PLIST object, donc je suppose qu'il faut que je trouve la methode pour le serializer.
  • AliGatorAliGator Membre, Modérateur
    Tout est expliqué dans la doc Archives & Serialization que je t'ai citée plus haut : les Programming Guide d'Apple sont vraiment très complets et plutôt bien foutus, et ils t'expliquent en détail les différentes manières de sérialiser/archiver des données, l'intérêt, les bouts de code, ce qu'il faut implémenter, etc.
  • [font=helvetica, arial, sans-serif]je dois préciser le type de données que j'envois.[/font]

    [font=helvetica, arial, sans-serif]Cependant j'envois des NSData et je ne sais pas quoi mettre parmi ces extensions[/font]

    http://www.webmaster...ime-types.shtml
Connectez-vous ou Inscrivez-vous pour répondre.