2009-11-29 9 views
0

Je suis conscient que cette question a été posée plusieurs fois, mais je n'ai pas trouvé de réponse définitive qui correspondrait le mieux à ma situation.Convertir NSData [UIImage] en NSString

Je souhaite que l'utilisateur puisse sélectionner une image dans la bibliothèque, puis cette image est convertie en type NSData. J'ai alors besoin d'appeler un webservice .NET C# via un HTTP si idéalement que j'ai besoin que la chaîne résultante soit encodée en UTF8.

C'est ce que j'ai jusqu'à présent:

NSData *dataObj = UIImageJPEGRepresentation(selectedImage, 1.0); 
    [picker dismissModalViewControllerAnimated:YES]; 
    NSString *content = [[NSString alloc] initWithData:dataObj encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", content); 

La déclaration NSLog produit simplement sortie comme:

2009-11-29 14:13:33.937 TestUpload2[5735:207] (null) 

Il est évident que ce isnt ce que j'espérais réaliser, de sorte que toute aide serait super.

Cordialement

Répondre

2

Vous ne pouvez pas créer une chaîne codée UTF-8 sur seulement toutes les données binaires arbitraires - les données doivent être réellement UTF-8 codé et les données de votre image JPEG est évidemment pas . Vos données binaires ne représentent pas une chaîne, vous ne pouvez donc pas en créer directement une chaîne - -[NSString initWithData:encoding:] échoue de manière appropriée dans votre cas. En supposant que vous utilisiez NSURLConnection (bien qu'une déclaration similaire soit vraie pour d'autres méthodes), vous construisez votre NSMutableURLRequest et vous utilisez -setHTTPBody: pour passer un objet NSData. Je ne comprends pas pourquoi vous utiliseriez une méthode GET ici, car il semble que vous allez télécharger ces données d'image sur votre service Web - vous devriez utiliser POST.