- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我们的项目中,当网络上有东西返回 JSON 时,我们的 iPhone 应用程序偶尔会崩溃,其中包含 nil。当然,我们确实有一个帮助类,它负责处理此类问题。然而,人们很容易出错,并且确实在 NSDictionary 上调用 objectForKey 而不是我们自己的 stringForKey 或 dateForKey 等。现在,有一个类可以一劳永逸地解决所有此类问题:https://github.com/nicklockwood/NullSafe
我的问题是:NullSafe 真的安全吗?因为有时你确实希望你的程序在逻辑错误时崩溃并且你得到 NSNull。只是忽略问题隐藏它。该应用程序可能不会崩溃,但在某些情况下,会做一些奇怪的事情。
现在我倾向于不使用这个类,只是确保我们的 JSON NSDictionaries 在我们尝试解析获取值之前过滤掉所有 NSNulls(尽管它可能会影响性能)。
大家怎么看?
最佳答案
当您向应用程序发送一些消息时,该类在不会崩溃应用程序方面是安全的。它的行为很像 nil
值。
此类不解决错误!如果您可能得到NSNull
,您应该按照它是的方式行事并处理那个案子。
一旦我使用了这样的类(也是因为 JSON),但是我将 NSLog
(或 ratcher 断点)放入 -forwardInvocation:
方法中以查看 在哪里和为什么它被调用。我不会在生产中使用它。
您还询问了性能。不确定还需要什么:从数组中删除 NSNull
或搜索所有类的方法签名;)
关于objective-c - 为了避免 [NSNull performSelector :. ..] 问题而使用 NSNull 类别技巧是否合乎规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571131/
我是一名优秀的程序员,十分优秀!