JSONKitを使用して、iPhoneアプリケーションのサーバーから返されたJSON文字列を解析しています。サーバーの応答の一部は、実際の画像にデコードしてパーサーが作成するオブジェクトに追加したい、Base64でエンコードされた画像のカップルです。問題は、パーサーが返すクラスの種類、つまりオブジェクトとの対話に使用できるメソッドの種類がわからないように見えることです。質問に対する回答をJSONKitのドキュメントで検索しましたが、見つかりませんでした。
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
クラスはヘッダーファイルで定義されています。私がそれを何として宣言しても(、、、、または)NSArray
、コードを実行すると同じエラーが発生します(正常にコンパイルされます)。NSMutableArray
NSDictionary
NSMutableDictionary
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[JKDictionary setObject:forKey:]: mutating method sent to immutable object'
オブジェクトがどのようなクラスであるか、Base64でデコードされた画像をオブジェクトに追加するにはどうすればよいか教えてもらえますか?
私はObjective-Cにかなり慣れていないので、我慢してください。ありがとう。