Convert NSData to byte array

2019-07-22 15:35发布

I want to convert the NSData into byte array and given below is the code that i have used

    NSData *imageData = UIImagePNGRepresentation(recipeImage.image);
    NSUInteger len = [imageData length];
    Byte *byteData = (Byte*)malloc(len);
    memcpy(byteData, [imageData bytes], len);
    NSLog(@"%8s",byteData);

But its giving me an error when i post the byteData to the webservice which is given below

"Server was unable to process request. ---> Parameter is not valid."

and when i print the byteData this is what i get in the console

âPNG

I tried searching the docs for NSData and found the getBytes method but that too was not of any use i was still getting the same error.

Could you please let me know from the code above as in where i am wrong or what mistake i am making in converting the data into byte array

Edit: I have tried using the

[imageData getBytes:&byteData length:length];

Its giving me a bad access error

2条回答
戒情不戒烟
2楼-- · 2019-07-22 16:18

Your problem is somewhere totally different.

You are sending data to a web service, and that fails. Show us how you send the data to the web service. Converting NSData to a byte array is absolutely pointless. imageData.bytes is as good a byte array as you are ever going to get.

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-07-22 16:25

Try this

NSData *imageData = UIImagePNGRepresentation(recipeImage.image);  
NSUInteger len = [imageData length];
Byte *byteData= (Byte*)malloc(len);
[imageData  getBytes:byteData length:len];
查看更多
登录 后发表回答