2009-11-29 124 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。