Я думаю, что реализация stringWithFormat: фактически реализована так же, как и ваша первая версия, что означает, что ничего не должно измениться. В любом случае, если есть какая-либо разница, вероятно, вторая версия не должна быть медленнее. Наконец, на мой взгляд, вторая версия немного более читабельна, так что это то, что я бы использовал.

учше (быстрее и эффективнее) использоватьalloc или жеautorelease Инициализаторы. Например.:

- (NSString *)hello:(NSString *)name {
    return [[NSString alloc] initWithFormat:@"Hello, %@", name];
}

ИЛИ ЖЕ

- (NSString *)hello:(NSString *)name {
    return [NSString stringWithFormat:@"Hello, %@", name];
//    return [@"Hello, " stringByAppendingString:name]; // even simpler
}

Я знаю, что в большинстве случаев производительность здесь не должна иметь значения. Но я все же хотел бы привыкнуть делать это лучше.

Если они делают одно и то же, то я предпочитаю последний вариант, потому что он короче и более читабелен.

В Xcode 4.2 есть способ увидеть, к чему компилируется ARC, то есть куда он помещаетretain, release, autorelease, и т.д? Эта функция будет очень полезна при переключении на ARC. Я знаю, что вам не нужно думать об этом, но это помогло бы мне найти ответ на подобные вопросы.

Ответы на вопрос(6)

Ваш ответ на вопрос