使用文字下标时检查数组索引
Checking array indexes when using literal subscripting
正如 Apple 所建议的,我们需要在调用 objectAtIndex:
之前检查 NSArray
的索引。为此,我们可以使用类别或方法调配。
对于这种下标语法,
index = 1;
id person = pArray[index];
有办法实现吗?
当然,我可以事先检查index
。
编译器只是将奇特的新语法糖生成到对 objectAtIndexedSubscript:
的调用中,因此这就是您想要调配的方法。不过,正如我在评论中提到的那样,这会增加很多开销,在强制执行后您无法轻易摆脱这些开销。
编辑:再考虑一下开销,NSArray
已经在内部进行了检查并在超出范围时抛出异常。也许将一些代码块包装在 @try/@catch
块中对您来说更有意义?
正如 Apple 所建议的,我们需要在调用 objectAtIndex:
之前检查 NSArray
的索引。为此,我们可以使用类别或方法调配。
对于这种下标语法,
index = 1;
id person = pArray[index];
有办法实现吗?
当然,我可以事先检查index
。
编译器只是将奇特的新语法糖生成到对 objectAtIndexedSubscript:
的调用中,因此这就是您想要调配的方法。不过,正如我在评论中提到的那样,这会增加很多开销,在强制执行后您无法轻易摆脱这些开销。
编辑:再考虑一下开销,NSArray
已经在内部进行了检查并在超出范围时抛出异常。也许将一些代码块包装在 @try/@catch
块中对您来说更有意义?