ios - [NSConcreteValue浮点值] : unrecognized selector sent to instance

标签 ios objective-c crash unrecognized-selector

在我的项目中我遇到了这个问题。

我有一个 NSDictionary,当我尝试调用一个值时,有时应用程序崩溃并且 Xcode 给我这个错误:

  • [NSConcreteValue floatValue]:发送到实例的选择器无法识别

下面是调用字典值的代码(该值不为零):

    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
{
}

字典由系统创建。我检查了字典的日志内容,它已经正确并且格式相同。

我没有其他信息。

我正在寻找一种防止崩溃的方法。

抱歉可能出现英文错误

谢谢

最佳答案

好的,看来我们正在尝试观察 AVCaptureDevice 的 ISO 属性。似乎有时它作为 NSValue 到达,而不是键入为 NSNumber。我不知道为什么会这样,但你可以检查这个条件:

strcmp(@encode(float), [[change valueForKey:@"new"] objCType]) == 0

如果通过,您可以直接提取值:

float f;
[[change valueForKey:@"new"] getValue:&f];

关于ios - [NSConcreteValue浮点值] : unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376686/

相关文章:

ios - 苹果 watch : Is this a good way to allow apple watch app to grab new data?

ios - 如何跨设备为对象创建唯一 ID

iphone - ios 中的错误(com.facebook.sdk 错误 5.)

objective-c - iOS:如何为 iOS 应用渲染 flash?

wcf - WCF独立进程是否会意外终止?

exception - Crashlytics 是否管理离线崩溃。

debugging - 如何关闭崩溃的 Visual Studio 调试器?

ios - AWS SES 使用 Amazon iOS SDK 发送带附件的邮件

javascript - iPad Safari iOS - SECURITY_ERR : Dom Exception 18 when accessing "document.cookie"

ios - 如何识别和排除 UIActivityViewController 中的第 3 方 ActivityType(例如 'Send to Kindle'、 'Chrome')?