鑑於NSArray *tagsArray
和NSMutableDictionary *cache
不爲空。局部變量,優化和ARC
此:
for (Tag *tag in tagsArray) {
NSString *name = tag.name;
[cache setObject:tag forKey:name];
}
不應該比這個慢:
for (Tag *tag in tagsArray) {
[cache setObject:tag forKey:tag.name];
}
?
__strong var'name'不會使用ARC的隱式保留/發佈嗎?編譯器實際上會從第一個生成第二個?
如果在發佈版本中有差異,我會感到驚訝,但在調試版本中,保留/發佈可能會在那裏。 – dasblinkenlight 2012-02-29 13:52:01
是的,這些會編譯成完全相同的東西 – trapper 2012-02-29 16:15:02
*應該*編譯到完全相同的東西,可能。如果你看到它實際上比較慢,我不介意在那裏發生一些奇怪的事情。 – mattjgalloway 2012-03-06 12:22:32