Для того чтобы создавать приложения для операционной системы iOS, вам надо разговаривать с ней.

Все, что вы скажете системе iOS, должно соответствовать ее интерфейсу API (т.е. интерфейсу прикладного программирования, представляющему собой список спецификаций того, что именно вы можете говорить.) Следовательно, вам нужны базовые знания языка программирования С, по крайней мере по следующим причинам.

Большая часть интерфейса API системы IOS использует язык Objective-C, так что в основном программирование для IOS будет вестись вами на языке Objective-C. ObjectiveC является надмножеством языка программирования С. Это означает, что Objective-C включает в себя С; все, что верно для С, верно и для Objective-C. Распространенная ошибка заключается в игнорировании того факта, что "Objective-C - это С~ и пренебрежении базовыми знаниями языка программирования С.

Часть интерфейса API системы IOS основана на С, а не на Objective-C. Даже при кодировании на Objective-C часто требуется использовать структуры данных и вызовы функций С. Например, прямоугольник представлен в виде структуры С CGRect, а для создания объекта CGRect из четырех чисел следует вызвать функцию С CGRectMake.

Очень часто документация интерфейса API системы IOS содержит выражения на языке программирования С и ожидает от вас их понимания. Один из лучших способов изучить язык С - прочесть книгу Брайана Кернингана (Brian W. Кernighan) и Денниса Ричи (Dennis М. Ritchie) Тhе С Рrоgтатт/пg Language (PTR Prentice Hall, 1988)1, известную также под аббревиатурой Kd-R (Ричи был создателем языка программирования С). Это одна из лучших когда-либо написанных компьютерных книг: краткая, насыщенная, потрясающе точная и понятная. Книга K&R настолько важна для эффективного программирования для IOS, что она всегда лежит у меня на столе, когда я занимаюсь программированием (советую вам сделать то же самое). Еще одним полезным справочником я бы назвал книгу Майка Банахана (Mike Banahan). Диклана Броди (Declan Brady) и Марка Дориана (Мark Doran) Тhе С Book.

Совершенно невозможно описать весь язык С в одной главе. Он не слишком большой и не слишком трудный, но имеет ряд "острых мест" и может быть исключительно тонким, мощным и низкоуровневым инструментом. Кроме того, поскольку язык С полно и корректно описан в вышеупомянутых книгах, было бы ошибкой повторять то, что уже было сказано в них лучше, чем мог бы сделать я. Так что данная глава - не типичное руководство по языку программирования С.

Для того чтобы эффективно использовать язык Objective-C, не обязательно знать о языке С все. Так что моя цель в этой главе - наметить те аспекты языка С, которые важно понять прежде всего, до того, как начать пользоваться языком Objective-C для программирования в операционной системе iOS. Эта глава так и называется - "Краткое описание языка С': Она предназначена для комфортного и безопасного начала работы.

Если вы вообще ничего не знаете о языке С, предлагаю вам в дополнение к данной главе прочесть избранные места из книги Kd-R. Вот предлагаемый мною план ее чтения.

  • Бегло ознакомиться с главой 1.
  • Внимательно прочесть главы 2-4.
  • Прочесть первые три раздела главы 5 об указателях и массивах. Оставшуюся часть упомянутой главы можно не читать, так как вам вряд ли придется работать с арифметикой указателей; НО ВЫ ДОЛЖНЫ четко понимать, ЧТО такое указатель, ПОСКОЛЬКУ В Objective-C почти все представляет собой объекты, а каждая ссылка на объект является указателем. Именно поэтому вы постоянно будете видеть (и использовать) символ *.
  • Прочтите также первый раздел главы 6 книги Kd-R о структурах; как начинающий, вы, вероятно, не будете определять собственные структуры, но вам придется много и часто их использовать, так что вам надо понимать соответствующую запись (например, как я уже говорил, класс CGRect представляет собой структуру).
  • Бросьте беглый взгляд на приложение Б в книге K&R2, в котором рассмотрена стандартная библиотека; возможно, вам придется обращаться к стандартной библиотеке, например, вызывать математические функции. Обычная ошибка начинающего программиста - забыть о существовании библиотеки.

Язык программирования С, определенный в книге Kd-R, не является в точности тем языком С, который образует основу для Objective-C. Со времен первого издания Kd-R язык постоянно развивался (появились стандарты ANSI С, С89, С99), да и компилятор Xcode также несколько расширяет стандартный язык программирования С. По умолчанию проекты Xcode рассматриваются как написанные на языке программирования, соответствующем стандарту GNU99 (расширению стандарта С99, хотя при желании вы можете указать и иной стандарт). К счастью, наиболее важные отличия языка из книги Kd-R и среды Xcode невелики и представляют собой улучшения для удобства использования, которые легко запомнить, так что Kd-R остается лучшим и наиболее надежным справочником по С.


 

 

 

Добавить комментарий