Comment coder et décoder des Fichiers en Base64 en Cocoa / Objective-C
Je suis en train d'essayer d'obtenir un petit savon client au travail, qui comprend d'envoyer un fichier de certificat dans le xml de la demande.
Je n'ai aucun mal à obtenir le fichier dans un NSData objet - mais puis-je le convertir dans un format Base64 Chaîne. Environnement Mac OS x, Xcode 4.3.
J'ai trouvé beaucoup de anciennes publication traitant de la -, mais le meilleur que j'ai trouvé un code qui fait de l'utilisation d'OpenSSL libs et où contenant des charges de méthodes obsolètes.
Donc, ma question est comme suit:
Est-il un meilleur moyen que d'utiliser OpenSSL libs?
Si oui, avez-vous peut-être avoir une URL ou une version plus récente du code des bouts?
Si non, je pense qu'il y a un projet qui traite avec Base64 qui peut être recommandé. Après tout Base64 n'est pas si rare.
Merci pour votre aide!
OriginalL'auteur Kai Mattern | 2012-07-08
Vous devez vous connecter pour publier un commentaire.
Voici un encodage base64 fait avec CommonCrypto:
il est très facile de code, il ne serait pas difficile de le mettre dans une catégorie
si vous ajoutez ceci à votre projet, vous devez aussi ajouter de la Sécurité.cadre
OriginalL'auteur denis2342
Si vous utilisez iOS 7 et OS X 10.9 SDK, vous pouvez utiliser la nouvelle base64 capacités de NSData.
Si vous utilisez une ancienne version du SDK, il suffit d'ajouter cette déclaration pour obtenir NSData base64 d'encodage et de décodage. Cela fonctionne sur iOS 4+ et OS X 10.7+.
OriginalL'auteur 0xced
Ici est une simple NSData Base64 catégorie j'ai écrit. Il utilise le fichier plist de sérialisation/désérialisation mécanisme sous le capot. Aussi, rajouts radar #9896929 serait sympa.
Avec de gruger le radar à l'entrée, tu veux dire en soumettant ce un une demande de fonctionnalité pour apple avec un soupçon de la solution que vous avez fourni?
J'ai juste intégré votre code dans mon petit projet et il fonctionne comme un charme. Astuce avec en option, la garde d'ARC.
OriginalL'auteur 0xced
Cela fonctionne pour OSX et c'est ok d'utiliser ce SDK est à partir de 10.6 à 10.8. Pour 10.9 les méthodes ont changé un peu (même si au moment de la rédaction, ils travaillent), mais tout est documenté sur
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/NSData/base64Encoding
OriginalL'auteur Artur