objective c «Вы забыли вложить alloc и init?»

Я только начинаю подниматься по кривой обучения Objective C (используя книгу по программированию Nerd Ranch для iOS).

Основываясь на том, что я знаю на других языках о «вложении» нескольких выполнений в одну строку, я предположил, что могу изменить:

NSString* descriptionString = [[NSString alloc] initWithFormat:@"%@", possesionName] 

с помощью двухстрочной версии:

NSString* descriptionString = [NSString alloc];
[descriptionString initWithFormat:@"%@", possesionName] 

но похоже, что вторая попытка вызывает исключение

2012-01-22 18:25:09.753 RandomPossessions[4183:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -length only defined for abstract class.  Define -[NSPlaceholderString length]!'

Может ли кто-нибудь помочь мне понять, что именно я здесь делаю не так? Заранее большое спасибо.

PS. Если это так, как работают сообщения Objective C, и вам нужно сделать alloc и init в одной строке, просто дайте мне знать - я предположил, что это всего лишь набор функций, которые могут быть выполнены по две за один раз или одна за другой.

5
задан Piotr 22 January 2012 в 17:35
поделиться