使用文字下标时检查数组索引

Checking array indexes when using literal subscripting

正如 Apple 所建议的,我们需要在调用 objectAtIndex: 之前检查 NSArray 的索引。为此,我们可以使用类别或方法调配。

对于这种下标语法,

index = 1;
id person = pArray[index];

有办法实现吗? 当然,我可以事先检查index

编译器只是将奇特的新语法糖生成到对 objectAtIndexedSubscript: 的调用中,因此这就是您想要调配的方法。不过,正如我在评论中提到的那样,这会增加很多开销,在强制执行后您无法轻易摆脱这些开销。

编辑:再考虑一下开销,NSArray 已经在内部进行了检查并在超出范围时抛出异常。也许将一些代码块包装在 @try/@catch 块中对您来说更有意义?