NSString инициализация - PullRequest
4 голосов
/ 16 мая 2011

Objective-C noob здесь.

С чего бы это*

NSString *myString = [[NSString alloc] initWithFormat:@"%f", storedNumber];

Я бы подумал, что последнее является лишь сокращением первого (но я, очевидно, ошибаюсь, по крайней мере, согласно компилятору).

Ответы [ 2 ]

4 голосов
/ 16 мая 2011

Поскольку -initWithFormat: возвращает объект, который отличается от объекта, возвращаемого +alloc, то есть объект, который отличается от объекта, указанного myString. Вот почему вы всегда должны связывать +alloc с -init….

Эта ситуация распространена в кластерах классов, таких как NSString. +alloc возвращает универсальный строковый объект, затем -initWithFormat: определяет конкретный подкласс NSString, освобождает текущий объект, созданный +alloc, создает новый объект из конкретного подкласса NSString и затем возвращает этот новый объект.

0 голосов
/ 15 марта 2013
NSString *myString = [[NSString alloc] init];

или

NSString *myString = [NSString new];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...