Я только начинаю подниматься по кривой обучения 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 в одной строке, просто дайте мне знать - я предположил, что это всего лишь набор функций, которые могут быть выполнены по две за один раз или одна за другой.