gpt4 book ai didi

iphone - 将字节值放入 NSDictionary [iOS]

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:13 26 4
gpt4 key购买 nike

我有一个 post web 服务,我需要在其中发送字节数组中的图像,并且因为我需要以 JSON 格式发送 post 参数,所以我创建了它的 NSDictionary。我的问题是如何将对象分配给 Byte 字典中的键,我尝试这样做,但在创建 NSDictionary 时应用程序崩溃了。我还用代码解释了每个步骤,以便于理解下面的问题:-

这是我将图像转换为字节格式的代码:-

NSData *data = [NSData dataWithContentsOfFile:filePath];
NSUInteger len = [data bytes];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);

所以,现在我有了 Byte,它包含字节数组中的图像,现在我想将这个对象分配给 NSDictionary。这是代码,

NSDictionary *dictJson = [NSDictionary dictionaryWithObjectsAndKeys:
byteData, @"photo",
nil];

现在我的应用程序在我创建 dictJson 对象的上面一行崩溃了,有什么方法可以将 Byte 传递给 NSDictionary 吗?

另外,还有一个问题,我如何NSLog byteData

请帮帮我。

提前致谢!

最佳答案

如果您真的想将图像数据作为包含字节数字的 JSON 数组发送,那么你必须“手动”创建数组,没有内置函数:

NSData *data = ... // your image data
const unsigned char *bytes = [data bytes]; // no need to copy the data
NSUInteger length = [data length];
NSMutableArray *byteArray = [NSMutableArray array];
for (NSUInteger i = 0; i < length; i++) {
[byteArray addObject:[NSNumber numberWithUnsignedChar:bytes[i]]];
}
NSDictionary *dictJson = [NSDictionary dictionaryWithObjectsAndKeys:
byteArray, @"photo",
nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictJson options:0 error:NULL];

JSON 数据看起来像

{"photo":[byte0, byte1, byte2, ...]}

所以也许这就是服务器所期望的。但请注意,这是一种非常低效(就空间而言)的图像数据发送方式(与 Base64 相比)。

关于iphone - 将字节值放入 NSDictionary [iOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com