gpt4 book ai didi

ios - 访问数组和字典的防御措施

转载 作者:可可西里 更新时间:2023-11-01 05:22:17 26 4
gpt4 key购买 nike

在嵌套字典和数组中防御 nil 值的最有效方法是什么?

我有一个包含字典的数组,它包含数组,数组又包含字典,所以我有一个方法想要返回这样的东西:

return myArray[0][@"Categories"][0][@"Content"];

目前我有以下内容,但我想知道是否有更干净或更优雅的方法来保护这些嵌套结构:

if (myArray) {
// Add a check for myArray.count > 0
if ([myArray[0] objectForKey:@"Categories"]) {
// Add a check for myArray[@"Categories"].count > 0
if ([myArray[0][@"Categories"][0] objectForKey:@"Content"]) {
return myArray[0][@"Categories"][0][@"Content"];
}
}
}

有更好的方法吗?有没有我没堵上的洞?提前致谢!

编辑:我添加了注释以添加以检查数组计数。通过这些添加,我对 myArray[0][@"Categories"][0][@"Content"] 中的对象的访问是否安全?

最佳答案

数组或字典都不能包含nil。因此,您正在尝试防止请求的键/索引不存在。

如果字典键不存在也没关系,你只会得到 nil 并且任何发送到 nil 的消息都会被“忽略”。

当你有一个数组并且你试图请求一个越界的索引时,问题就来了。因此,您真正应该做的是检查数组的 count 而不是检查键是否存在。

关于ios - 访问数组和字典的防御措施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17656341/

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