ios将nsmutabledictionary中的字符串与字符串进行比较我收到此错误:'NSInvalidArgumentException'

时间:2013-07-03 17:10:11

标签: ios nsstring

我有这行代码,我正在尝试将nsmutabledictinary内的字符串与string进行比较:

if ([[[myDictionary valueForKeyPath:@"time"] stringValue]  isEqualToString:@"hours"]) 

但是我收到了这个错误:

  

* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFConstantString   stringValue]:无法识别的选择器发送到实例0x3a4849a4'

我检查字典容器的类类型:

NSLog(@"%@'", NSStringFromClass([[myDictionary valueForKeyPath:@"time"]  class]));

这是输出:

__NSCFConstantString

你们任何人都知道为什么或如何解决这个问题?

我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

[myDictionary valueForKeyPath:@"time"]

已经是NSString。无需调用-stringValue将其转换为字符串。 你为什么这样做? 不要使用-valueForKeyPath,而应该像这样写:

if ([[myDictionary objectForKey:@"time"] isEqualToString:@"hours"]) 

答案 1 :(得分:0)

NSString没有stringValue方法。您可能已经看到过这种用于将字典中的NSNumber转换为字符串的事情。

你真正想做的事情似乎是:

if ([myDictionary[@"time"] isEqualToString:@"hours"]) {
    ...