Écrire NSData à un fichier?
Je suis en train d'écrire un nsdata un fichier sur mon disque, j'ai le code suivant ne fonctionne pas, suis-je en train de faire quelque chose de mal?
Boolean result = [data writeToFile:@"/Users/aryaxt/Desktop/test2.avi" atomically:YES];
test2.avi n'existe pas, je suis en supposant que writeToFile serait de créer il pour moi
Sur une note de côté, vous devriez être en utilisant
Essayez
(et s'il vous plaît vérifiez dans le débogueur de données n'est pas nul; peut-être que l'image est aussi nul 😉
J'ai eu le même problème dans une application multi-thread. Utiliser assert([longueur] > 0) comme une défensive style de programmation.
BOOL
, pas Boolean
en Objective-C.Essayez
-[NSData writeToFile:options:error
] (developer.apple.com/mac/library/documentation/Cocoa/Reference/...) et de nous dire ce message d'erreur est signalée.(et s'il vous plaît vérifiez dans le débogueur de données n'est pas nul; peut-être que l'image est aussi nul 😉
J'ai eu le même problème dans une application multi-thread. Utiliser assert([longueur] > 0) comme une défensive style de programmation.
OriginalL'auteur aryaxt | 2010-08-28
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser :
Qui vais vous dire pourquoi l'écriture est un échec.
error
ne doit être examiné si la méthode renvoieNO
. Les classes de base peut mettre d'autres objets ou des erreurs de faux ou même de déchets dans l'erreur argument. (Cela ne veut pas dire qu'ils , mais ça fait partie de la programmation du contrat qu'ils peuvent, donc, être prudent.)J'ai un côté question un peu hors sujet pour les documents:Discussion Cette méthode peut ne pas être approprié lors de l'écriture dans les fichiers publiquement accessibles. Sécurisé pour écrire des données dans un lieu public, à l'utilisation NSFileHandle à la place. Pour plus d'informations, seeSecuring Opérations de Fichier en Codage Sécurisé Guide". Donc dois-je encore l'utiliser ou pas ?
"accessibles au public des fichiers" ça veut dire Quoi ?
Beaucoup de gens ont upvoted Jonathan commentaire à propos de la seule vérification de la
error
si la méthode renvoieNO
. Je suis d'accord, c'est vrai, pour une mise à disposition du code de production, et doublement le cas lors de l'envoi de l'erreur à l'utilisateur. Le chèque a été laissé de côté ici en partie pour des raisons de concision et en partie parce que leNSLog()
appeler, dans ce cas, est utilisé pour le débogage en cours de développement.Ce code est assez ancien et ne pas prendre le bac à sable en compte. Aussi, vérifiez les avertissements Apple, Sécurisée, le Guide de Codage Conditions de Course et de Sécuriser les Opérations de Fichiers
OriginalL'auteur John Franklin