【发布时间】:2019-10-14 12:20:42
【问题描述】:
在我的项目中我遇到了这个问题。
我有一个 NSDictionary,当我尝试调用一个值时,有时应用会崩溃,Xcode 会给我这个错误:
- [NSConcreteValue floatValue]:发送到实例的选择器无法识别
这里是调用字典值的代码(值不是nil):
float valueTest = [[change valueForKey:@"new"] floatValue];
编辑
这是我的 NSDictionary 的结构:
{
kind = 1;
new = "0.02696711";
old = "0.04064206";
}
字典永远不会等于 nil
方法是这样的:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
}
字典由系统创建。我用日志检查了字典的内容,它已经是正确的并且格式已经相同了。
我没有其他信息。
我正在寻找防止崩溃的方法。
抱歉可能出现英文错误
谢谢
【问题讨论】:
-
“The value is not nil” 不,但它也不是 NSNumber。这就是问题所在。
-
@matt 好的,但为什么有时它有效而有时无效?我必须如何更改我的代码?谢谢
-
@matt 我编辑了我的问题。我再说一遍,我的 NSDictionary 上的值永远不会等于 nil,键“new”中的值始终与浮点数相同
-
看
NSValue。 -
@matt 我重新编辑了问题
标签: ios objective-c crash unrecognized-selector