Com o ARC, o que é melhor: inicializadores de alocação ou liberação automática?
É melhor (mais rápido e mais eficiente) usaralloc
ouautorelease
inicializadores. Por exemplo.
- (NSString *)hello:(NSString *)name {
return [[NSString alloc] initWithFormat:@"Hello, %@", name];
}
O
- (NSString *)hello:(NSString *)name {
return [NSString stringWithFormat:@"Hello, %@", name];
// return [@"Hello, " stringByAppendingString:name]; // even simpler
}
Eu sei que na maioria dos casos, o desempenho aqui não deve importar. Mas ainda gostaria de ter o hábito de fazê-lo da melhor maneir
Se eles fazem exatamente a mesma coisa, prefiro a última opção porque é mais curta para digitar e mais legíve
o Xcode 4.2, há uma maneira de ver o que o ARC compila, ou seja, onde ele colocaretain
, release
, autorelease
etc? Esse recurso seria muito útil ao passar para o ARC. Sei que você não deveria pensar nessas coisas, mas isso me ajudaria a descobrir a resposta para perguntas como essa