我有这行代码,我正在尝试将nsmutabledictinary内的字符串与string进行比较:
if ([[[myDictionary valueForKeyPath:@"time"] stringValue] isEqualToString:@"hours"])
但是我收到了这个错误:
* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFConstantString stringValue]:无法识别的选择器发送到实例0x3a4849a4'
我检查字典容器的类类型:
NSLog(@"%@'", NSStringFromClass([[myDictionary valueForKeyPath:@"time"] class]));
这是输出:
__NSCFConstantString
你们任何人都知道为什么或如何解决这个问题?
我真的很感谢你的帮助。
答案 0 :(得分:2)
[myDictionary valueForKeyPath:@"time"]
已经是NSString
。无需调用-stringValue
将其转换为字符串。
你为什么这样做?
不要使用-valueForKeyPath
,而应该像这样写:
if ([[myDictionary objectForKey:@"time"] isEqualToString:@"hours"])
答案 1 :(得分:0)
NSString没有stringValue
方法。您可能已经看到过这种用于将字典中的NSNumber转换为字符串的事情。
你真正想做的事情似乎是:
if ([myDictionary[@"time"] isEqualToString:@"hours"]) {
...