2009-11-29 125 views
0

我知道這個問題已被多次詢問,但我無法找到最符合我的情況的明確答案。將NSData [UIImage]轉換爲NSString

我想讓用戶從庫中選擇一個圖像,然後將該圖像轉換爲NSData類型。然後我需要通過HTTP get來調用.NET C#webservice,所以理想情況下我需要生成的字符串爲UTF8編碼。

這是我到目前爲止有:

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

的的NSLog語句只是產生輸出爲:

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

顯然,這心不是我所希望實現的,所以任何幫助將是巨大的。

親切的問候

回答

2

你不能只出任意的二進制數據創建一個UTF-8編碼的字符串 - 數據需要實際上是UTF-8編碼,數據爲您的JPEG圖像顯然不是。你的二進制數據不代表一個字符串,所以你不能直接從它創建一個字符串 - -[NSString initWithData:encoding:]在你的情況下適當地失敗。

假設您使用NSURLConnection(儘管其他方法的類似聲明應該是true),您將構造NSMutableURLRequest並使用您需要傳遞NSData對象的-setHTTPBody:。我不明白爲什麼你會在這裏使用GET方法,因爲它聽起來像你將要上傳圖像數據到你的Web服務 - 你應該使用POST。