【发布时间】:2012-04-19 05:51:38
【问题描述】:
我打算将 iOS SDK 中的 NSDictionary* 对象转换为 NSString*。
假设我的 NSDictionary 对象具有以下键值对: {"aps":{"badge":9, "alert":"hello"}} (注意 value 本身是一个 NSDictionary 对象) 我希望它转换为键值对为 {"aps":"badge:9, alert:hello"} 的哈希映射(注意值只是一个字符串)。
我可以使用以下代码打印 NsDictionary 中的值:
NSDictionary *userInfo; //it is passed as an argument and contains the string I mentioned above
for (id key in userInfo)
{
NSString* value = [userInfo valueForKey:key];
funct( [value UTF9String]; // my function
}
但我无法在像 UTT8String 这样的值对象上调用任何 NSString 方法。它给了我错误“由于未捕获的异常 NSInvalidArgumentException 而终止应用程序:原因 [_NSCFDictionary UTF8String]:无法识别的选择器已发送到实例
【问题讨论】:
-
它给了我错误“由于未捕获的异常 NSInvalidArgumentException 导致应用程序终止:原因 [_NSCFDictionary UTF8String]:无法识别的选择器发送到实例
-
听起来像是嵌套字典
-
你为什么要从 NSDictionary 转到 HashMap?
-
@danielbeard 是对的……它看起来像是嵌套的。
-
你可以试试[value UTF8String];
标签: ios nsstring nsdictionary