2

我们遇到了无数关于 JSON 提要的问题,导致[__NSCFString objectForKey:]在处理(使用 AFNetworking JSON 框架)时导致应用程序崩溃的错误。

我们知道为什么会这样,因为字符串占据了NSDictionary预期 an 的位置。

但我在想,是不是可以创建一个objectForKey函数的类别或子类来快速检查所讨论的对象是否是字典?ObjectForKey在s上穿同样的东西会很可爱NSArray

这肯定会降低此类问题在我们的项目中再次发生的风险。

4

1 回答 1

1

我认为拥有一些功能不会太难,比如......

- (NSString*)stringForKey:(id)key;

你可以做类似...

- (NSString*)stringForKey:(id)key
{
    id object = [self objectForKey:key];

    if ([object isKindOfClass:[NSString class]]) {
        return (NSString*)object;
    }

    return nil;
}

对于其他对象类型,您也可以有类似的。

这样,您始终会收到您期望的对象类型或 nil。

编辑

事实上,经过一番搜索。我认为这个功能已经存在于 NSDictionary 中。(更正感谢 jrturton。这仅适用于 NSUserDefaults。)

于 2013-01-24T08:31:33.317 回答