gpt4 book ai didi

ios - 发送到不可变对象(immutable对象)的变异方法

转载 作者:可可西里 更新时间:2023-11-01 06:23:50 26 4
gpt4 key购买 nike

我在我的 iPhone 应用程序中使用 JSONKit 解析从我的服务器返回的 JSON 字符串。服务器响应的一部分是一些 Base64 编码图像,我想将它们解码为实际图像并添加到解析器创建的对象中。问题是我似乎无法弄清楚解析器返回什么样的类,因此也无法弄清楚可以使用什么样的方法与对象交互。我搜索了 JSONKit documentation寻找我的问题的答案,但还没有找到。

decodedData = [[request responseString] objectFromJSONString];

int i = 0;
[Base64 initialize];
for (NSString *base64String in [decodedData valueForKey:@"base64String"]) {
UIImage *image = [UIImage imageWithData:[Base64 decode:base64String]];
[decodedData setValue:image forKey:@"image"];
i++;
}

这段代码放在一个方法中,当请求成功完成并且响应返回到 [request responseString](JSON)时,该方法会被调用。 decodedData 对象的类在头文件中定义。无论我将其声明为什么(NSArrayNSMutableArrayNSDictionaryNSMutableDictionary),我得到的都是一样的运行代码时出错(编译得很好),即:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[JKDictionary setObject:forKey:]: mutating method sent to immutable object'

谁能告诉我这个对象是什么类型的,我应该怎么做才能将 Base64 解码的图像添加到对象中?

我是 Objective-C 的新手,请多多包涵。谢谢。

最佳答案

您正在尝试改变不可变的 JKDictionary(它本身是不可变的 NSDictionary 对象的代理)。

您链接到的文档在 NSString 上指定了一个名为 - (id)mutableObjectFromJSONString; 的实例方法,这将为您提供一个可变字典对象,如果你如此渴望。

关于ios - 发送到不可变对象(immutable对象)的变异方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6934220/

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