gpt4 book ai didi

objective-c - 如何使用 Objective-C 文字检查 NSDictionary 中的键

转载 作者:行者123 更新时间:2023-12-04 02:41:53 24 4
gpt4 key购买 nike

解析 JSON 时,我得到 NSDictionary 并一次通过一个(已知)键。在调试 bug 时,我开始思考:我应该如何处理缺失键和值为零的值?

早些时候我会使用类似这样的东西来检查 key 是否存在:

    if ([dict objectForKey:@"public"])
newItem.isPublic = [dict objectForKey:@"public"] ? YES : NO;

但现在我使用 Objective-C 对象字面量来编写它。刚开始想知道,这个检查实际上做了什么:

    if (dict[@"public"])
newItem.isPublic = dict[@"public"] ? @YES : @NO;

我应该检查 nil 还是 [NSNull null] 还是有更简单、明显的方法?

最佳答案

新的文字语法在这里没有区别。 dict[@"public"]代码被翻译成[dict objectForKeyedSubscript:@"public"],据记载与valueForKey:,它又调用 objectForKey:

至于条件测试,写成if ([dict objectForKey:@"foo"])if ([dict objectForKey:@"foo"] != nil是一样的)。换句话说,[NSNull null] 在这里算作 true,因此您必须明确检查是否需要不同的行为。零不能直接存储在字典中,它必须包含在 NSNumber 中,再次被视为真值。

另见 Objective-C Literals specNSDictionary Class Reference .

关于objective-c - 如何使用 Objective-C 文字检查 NSDictionary 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com