Я хочу изучить Objective C, но я хочу сделать это правильно. Прежде чем начать, должен ли я сначала изучить другой язык? (Я думал C/C++).
Очевидно, это довольно субъективно, но любая помощь ценится.
Я предлагаю изучить C, потому что все, что является законным в C, является законным в Objective C. Большая часть синтаксиса C передается Objective C (кроме @
). Указатели очень актуальны в C, поскольку они находятся в Objective C, поэтому хорошее понимание указателей из C является обязательным. C - это процедурный язык, а Objective C - объектно-ориентированный. Языки, такие как Java, С# и C++, облегчат вам состояние ОО, критическую часть Objective C.
Edit: Если вы действительно хотите изо всех сил, изучите Smalltalk, так как это язык, на котором Objective C получил свои идеи обмена сообщениями.
Objective-C построен поверх C, это C с добавлением дополнительных материалов. Вы можете написать чистый C-код в файле.m *, и можете ожидать его работы, и он работает. Итак, чем больше вы знаете о C, тем больше вы понимаете Objective-C.
Например, кто-то спросил меня, как работает следующая строка кода в Objective-C:
NSString *string = @"Hello, World!"; //**
В принципе, он спрашивал меня, как я могу назначить строковый литерал @"Hello, World!"
к переменной типа указателя. Но если бы он прошел через С, не было бы необходимости задавать этот вопрос. Поскольку в C вы можете написать следующую строку кода:
char *string = "Hello, World!";
Он фактически назначает указатель на char array - "Hello, World!"
на переменную string
которая имеет тип указателя курса.
Не только это, Objective-C сильно использует блоки, а снова блоки - это C. То же самое, указатели на функции, структуры и т.д. Все исходят от C до Objective-C.
Objective-C также использует синтаксис printf
когда он отправляет сообщения на консоль.
Так да. Обучение C сначала определенно помогает вам хорошо понимать Objective-C.
* Файлы Objective-C обычно хранятся с расширением.m
** Мы используем знак @
чтобы компилятор мог различать, которые являются строками C (без начала с @) и которые являются объектно-C-строками (со стартом @).
Не изучать C++ раньше! Это может смутить вас и не поможет понять Objective-C. Если вы хотите почувствовать объектно-ориентированную часть Objective-C, вам стоит взглянуть на Smalltalk. Smalltalk отлично подходит для новичков, но, к сожалению, не слишком много учебных материалов, которые ориентированы на взрослых.
Однако я бы рекомендовал изучить Objective-C, не изучая ничего в первую очередь. Есть несколько книг и курсов, которые сосредоточены на этом.