在这个简单的测试中,在确定索引有效之后,是否值得分配变量而不是调用两次objectAtIndex:方法?
NSString *s = [myArray objectAtIndex:2];
if (s) {
Test *t = [Test initFromString:s];
}
而不是
if ([myArray objectAtIndex:2]) {
Test *t = [Test initFromString:[myArray objectAtIndex:2]];
}
答案 0 :(得分:0)
从性能的角度来看,它是不值得的,除非代码位于一条非常热门的路径上(你会知道)。发送消息是practically free并且在大多数情况下查找给定索引上的对象也太快而无法关注。
此更改使代码更具可读性:首先,您可以命名从容器中提取的内容(如testName
)。其次,在阅读对objectAtIndex
的两次重复调用时,您必须确保它的代码真的相同。在你引入单独的变量后,很明显,认知负荷较少。