是否犹豫使用NSNull类别技巧以避免[NSNull performSelector:...]问题?

时间:2013-01-28 20:59:15

标签: objective-c json nsnull

在我们的项目中,当网络上有东西返回带有nil的JSON时,我们偶尔会让我们的iPhone应用程序崩溃。当然,我们确实有一个帮助类,它可以解决类似的问题。然而,人们容易出错并且在NSDictionary上调用objectForKey而不是我们自己的stringForKey或dateForKey等。现在,有一个类可以一劳永逸地杀死所有问题:https://github.com/nicklockwood/NullSafe

我的问题是:NullSafe真的安全吗?因为如果逻辑错误并且你得到NSNull,有时你确实希望程序崩溃。忽略这个问题隐藏了它。该应用程序可能不会崩溃,但在某些情况下,会做一些奇怪的事情。

现在我倾向于不使用这个类,只是确保在我们尝试解析获取值之前,我们的JSON NSDictionaries已经过滤了所有NSNull(但它可能会影响性能)。

你们有什么想法?

1 个答案:

答案 0 :(得分:3)

当您向其发送一些消息时,该类在不崩溃方面是安全的。它的行为与nil值非常相似。

此课程无法解决错误!如果可能获得NSNull,您应该按照 那样行事并处理情况下。

一旦我使用了这样的类(也是因为JSON),但我将NSLog(或ratcher断点)放入-forwardInvocation:方法中以查看从哪里为什么它被称为。我不会在制作中使用它。


您还询问了表现。不确定什么需要更多:从数组中删除NSNull或在所有类中搜索其方法签名;)