gpt4 book ai didi

ios - 使用NSArray时,避免“越界”的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 19:04:35 26 4
gpt4 key购买 nike

我知道一些避免这种情况的方法,例如

if (index >= [_data count] || index < 0) return nil;
return [_data objectAtIndex:index];
但是我应该总是这样做吗?或关于此主题还有其他解决方案吗?

最佳答案

首先,我想回应@rmaddy的评论,该评论就在以下地方:

没有通用的解决方案。每种情况都是不同的。

也就是说,您还可以使用其他技术:
firstObjectlastObject
这些方法将返回对象,如果没有,则返回nil。这些方法永远不会抛出异常。

快速枚举

您可以使用快速枚举,而无需检查索引:

NSArray *myStrings = @[@"one", @"two"];

for (NSString *thisString in myStrings) {
NSLog(@"A string: %@", thisString);
}

安全类别

如果您发现自己经常这样做,则可以在 NSArray上添加一个类别:
- (id)safeObjectAtIndex:(NSUInteger)index {
if (index >= [self count] || index < 0) return nil;
return [self objectAtIndex:index];
}

如果您不熟悉类别,请参见 Customizing Existing Classes

缺点之一是可能很难在代码中发现错误。

关于ios - 使用NSArray时,避免“越界”的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559187/

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