NSArray *tagsArray
및 NSMutableDictionary *cache
이 비어 있지 않습니다.로컬 변수, 최적화 및 ARC
이 :
for (Tag *tag in tagsArray) {
[cache setObject:tag forKey:tag.name];
}
:
이for (Tag *tag in tagsArray) {
NSString *name = tag.name;
[cache setObject:tag forKey:name];
}
이보다 느리게 안?
__strong var 'name'은 ARC에 의한 암시 적 보유/해제를 사용하지 않습니까? 컴파일러는 실제로 처음부터 두 번째를 생성 할 것인가?
릴리즈 빌드에 차이가 있다면 놀랍지 만, 디버그 빌드에서는 retain/release가있을 것입니다. – dasblinkenlight
예 이것들은 정확히 똑같은 것으로 컴파일 될 것입니다. – trapper
* 똑같은 것으로 컴파일해야합니다. 나는 당신이 그것을 실제로 느리게 보는 것을보고 있다면 이상한 일이 벌어지고 있음을 확신합니다. – mattjgalloway