我正在使用用SudzC生成的API,我有一个方法可以获得XML响应,我正在尝试反序列化为NSMutableDictionary。
这是反序列化的方法:
当我得到Soap响应的值时,我将其转换并尝试在控制台日志中显示密钥:
问题是我收到了这个错误:
***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSDictionaryM lowercaseString]:无法识别的选择器发送到实例0x7277680'
我试过做同样但反序列化到NSMutableArray并且它有效,所以问题必须在deserialize方法但我找不到它。
答案 0 :(得分:0)
在您的代码中的某个位置,您在{em>认为为lowercaseString
的内容上调用NSString
,但实际上是NSDictionary
。在代码中搜索此方法调用。可能发生的事情是,您正在对正在解析的数据结构进行某些假设并不总是正确的。
此外,您可以将代码直接发布到StackOverflow中并保留格式。这比屏幕捕获图像好得多,因为这意味着人们可以复制/粘贴。
答案 1 :(得分:0)
您需要检查getParametersHandler的输出是NSString还是NSDictionary ..
检查代码
if ([resp isKindOfClass:[NSDictionary class]]) {
//here you can do what you want to do..
}else{
//here you need to show the alert(No values)
}
如果处理程序中没有值,则输出将为NSString ...
快乐的编码......