Стань X-кодером

Bert Altenburg, Alex Clarke, Philippe Mougin, “Become An Xcoder”, public translation into Russian from English More about this translation.

Translate into another language.

Начни программировать под Mac используя Objective-C

Bert Altenberg, Alex Clarke, Philippe Mougin

Лицензия

Уведомление об авторском праве

Copyright © 2008 Bert Altenburg, Alex Clarke и Philippe Mougin. Версия 1.15

Опубликовано под Creative Commons лицензией 3.0 версии без права на коммерческое использование

http://creativecommons.org/licenses/by/3.0/

Установление авторства: лицензиары Bert Altenburg, Alex Clarke и Philippe Mougin позволяют копировать, модифицировать и распространять данную работу. В свою очередь лицензиат обязан предоставить информацию об авторах оригинала.

Некоммерческое использование: лицензиары разрешают копировать, модифицировать, распространять и использовать работу в платных и бесплатных курсах. В свою очередь лицензиат не может продать работу как свою, но может использовать в другой работе, которая будет продаваться.

CocoaLab

CocoaLab делает эту книгу общедоступной в виде Wiki или pdf документа на английском, китайском и арабском языках, и размещенной на http://www.cocoalab.com.

Содержание

Содержание

Введение

Apple обеспечивает вас всеми инструментами, необходимыми для создания великолепных Cocoa приложений бесплатно. Этот набор инструментов известен как Xcode, поставляется вместе с Mac OS X. Также вы можете скачать его из раздела разработчиков на веб-сайте Apple.

Существует несколько хороших книг по программированию для Mac, но в них предполагается, что у вас уже есть некоторый опыт в программировании. Это книга не такая. Она научит вас основам программирования, а конкретно Objective-C, используя Xcode. После 5 глав вы будите способны создать простую программу без графического интерфейса пользователя (GUI).

После прочтения нескольких глав вы будете знать, как создавать простые программы с GUI. Когда вы прочитаете этот книгу, вы сможете понять более сложные книги. Вы должны будете прочитать и их, т.к. там есть, чему поучиться. Но пока не беспокойтесь об этом — эта книга дается легко.

Как пользоваться этой книгой

Как вы видите, некоторые параграфы отображаются жирным шрифтом подобно этому:

Некоторые детали.

Мы рекомендуем читать каждую главу (по крайней мере) дважды. При первом прочтении пропустите дополнительные вставки. При втором прочтении читайте вместе с дополнительными вставками. Вы повторите то, что вы уже изучили, а также узнаете некоторые интересные детали, которые были пропущены в первый раз. Читая книгу таким способом, вы неизбежно сделаете кривую вашего обучения похожей на крутой склон.

Эта книга содержит десятки примеров, состоящих из одной или более строк программного кода. Чтобы связать объяснения с примером, каждый пример имеет ссылку в виде числа в квадратных скобках, например, [1]. Большинство примеров из двух или более строк кода. Иногда, второе число используется для обозначения конкретной строки. Например, [1.1] относится к первой строке примера [1]. При больших фрагментах кода, ссылка ставится после строки кода, например:

//[1]

volume = baseArea * height; // [1.1]

Программирование — непростая работа. С вашей стороны требуется некоторая настойчивость и попытка опробовать все вещи в этой книге на себе. Вы не сможете научиться играть на фортепиано или водить машину только читая книги. То же самое можно сказать об обучении программированию. Эта книга в электронном формате, поэтому вы всегда имеете возможность переключиться на Xcode. Как и в 5 главе, мы предлагаем вам пройти каждую главу три раза. Во второй раз попробуйте реализовать примеры, а затем внести небольшие изменения в код, чтобы изучить работу.

00: Перед началом

Мы написали эту книгу для Вас. Так как она бесплатная, пожалуйста, позвольте мне сказать пару слов о содействии Mac.

Каждый пользователь Macintosh может помочь в продвижении их любимой компьютерной платформы с небольшими усилиями. Опишу как.

Чем более искусным пользователем Mac Вы являетесь, тем легче Вам будет убедить других людей его использовать. Поэтому оставайтесь в курсе событий, посещая сайты и читая журналы о Mac. Естественно, изучение Objective-C или AppleScript и использование их на практике тоже необходимо. Для целей бизнеса использование AppleScript может сохранить много времени и денег. Посмотрите наш бесплатный буклет Берта "AppleScript для абсолютных новичков" на сайте:

http://www.macscripter.net/books

Покажите миру, что не все используют PC, показывайте Macintosh. Можно носить на людях красивую майку с логотипом Mac, но есть способы показать Mac, даже находясь у себя дома. Если Вы запустите Системный монитор (в папке Приложения -> Утилиты на Вашем компьютере), Вы увидите, что Ваш Mac редко использует все ресурсы своего процесоора. Ученые создали несколько проектов для распределенных вычислений (DC), например Folding@home или SETI@home, которые используют эти свободные ресурсы, обычно для общего блага.

Вы можете загрузить небольшую бесплатную программу "DC" и начать обрабатывать специальные блоки данных для сети распределенных вычислений. Этот клиент (DC) имеет самый низкий приоритет исполнения на всех компьютерах. Когда Вы пользуетесь своим Mac`ом — Вам нужна вся его мощность и ваш DC клиент автоматически останавливается. Он не выгружается, но Вы не заметите, что он работает. Как это помогает Mac`у? Большинство DC проектов занимается ранжированием сайтов. Если Вы присоединитесь к команде Mac (вы можете увидеть их имена в списке ранжирования), Вы можете внести ценный вклад для расчета ранжирования страниц. И пользователи других платформ могут видеть, как работает команда Mac. DC могут использоваться и для других целей: математический расчетов, поиск лекарства и т.д. Выберите свой проект здесь:

http://distributedcomputing.info/projects.html

Только будьте осторожны, это может войти в привычку!

Будьте уверены — на платформе Макинтош лучшие программы. Но их очень сложно писать одному. Возьмите в привычку обратную связь с разработчиками программ, которые вы используете.
Даже если вам что-либо не нравится в программе, расскажите об этом разработчикам. В докладе об ошибке предоставьте как можно более точное и полное описание ошибки и действий которые к ней привели.

Платите за софт, который используете. Пока рынок ПО под макинтоши будет жив, разработчики будут продолжать создавать отличный софт.

Пожалуйста, свяжитесь хотя бы с тремя пользователями Макинтоша, которых интересует программирование, и расскажите им об этой книге и где ее найти. Или расскажите о вышеназваных 4-х пунктах.

Хорошо, пока вы скачиваете DC-клиента, давайте начнем!

Глава 1: Программа – это набор инструкций

Вступление

Учась водить машину, вам приходится держать в голове сразу несколько вещей. Нужно одновременно помнить о педалях сцепления, газа и тормоза. Программирование тоже требует от вас внимания ко многим деталям, чтобы программа работала без сбоев. Когда вы начинаете учиться водить машину, вы уже так или иначе знакомы с ней. Когда же вы начинаете учиться программировать на Xcode, этого преимущества вы лишены. Поэтому, чтобы не взваливать на вас сразу слишком много, мы отложим разбор среды программирования до следующей главы. Сначала мы постараемся познакомить вас с кодом Objective-C, начиная со очень знакомых вам некоторых основ математики.

В начальных классах вы производили вычисления, заполняя поля с точками:

2 + 6 = ...

... = 3 * 4 (звёздочка * используется для представления операции умножения на компьютерной клавиатуре)

В старших классах точки вышли из моды и появились переменные, названные x и y (вместе с новым модным словом «алгебра»). Оглядываясь назад, можно подумать: и почему людей так пугает такое небольшое изменение в способе записи?

2 + 6 = x

y = 3 * 4

Переменные

В Objective-C тоже используются переменные. Переменные являются не более чем удобными именами для обозначения конкретных фрагментов данных, таких как числа. Ниже написано высказывание на Objective-C, а именно строка кода, где переменной присваивается определённое значение.

//[1]

x = 4;

Точка с запятой

Переменная X принимает значение 4. Cледует заметить точку с запятой в конце строки. Точка с запятой нужна в конце каждой команды. Почему? Ну, код, приведенный в примере [1], может выглядеть понятным вам, но компьютер не знает что с ним делать. Специальная программа "компилятор" призвана перевести текст, который вы пишете, в единички и нолики, которые понимает ваш Мак. Компьютеру очень сложно понять введенный текст, например где кончается команда. Для этого и используется точка с запятой.

Если вы забудете поставить точку с запятой в вашем коде, код не скомпилируется, т.е. не переведется в код, который сможет выполнить Мак. Не сильно беспокойтесь об этом, компилятор пожалуется, если не сможет скомпилировать код.
Как мы увидим в следующей главе, он будет стараться помочь вам понять, что случилось.

Именование переменных

Хотя имена переменных и не имеют особого значения для компилятора, описательные имена переменных могут сделать программу гораздо проще для чтения и следовательно понимания людьми. Это большой плюс при отслеживании ошибок в коде.

Ошибки в программах по традиции называют "багами" (англ. bugs). Их поиск и исправление называют дебагингом.
Таким образом в реальном коде следует избегать использования неописательных имен переменных вроде X. Например, переменную для ширины изображения можно было бы назвать pictureWidth [2].

//[2]

pictureWidth = 8;

Компиляторы обычно прощают отсутствие точки с запятой, но Вы поймете, что программирование – это в основном детали. Например, нужно обращать внимание на заглавные и прописные буквы в названиях функций и переменных (case - sensitive). Например: pictureWidth, pictureWIDTH и PictureWidth – это три разные переменные. Согласно общим соглашениям, мы делаем переменные, соединяя несколько слов, первое слово без заглавных и все остальные начинаются с заглавных, как на примере [2]. Этот стиль часто называют camelCase. Выбрав этот метод, вы существенно сократите количество ошибок программирования, связанных с регистром.

Помните, что имя переменной обычно состоит из одного слова (или одного символа в крайнем случае).

Несмотря на то, что вы можете использовать любое имя для своих переменных, существуют определенные правила, которые необходимо соблюдать. Не буду пока перечислять их всех сразу, сразу, скажу лишь про одно, оно основное — переменные не должны совпадать с зарезервированными словами Objective-C. Используя переменные, состоящие из нескольких слов, например pictureWidth, вы никогда не нарушите это правило. И еще, старайтесь использовать строчные буквы в именах переменных, это обеспечит их читабельность и облегчит вам жизнь в дальнейшем.

Если Вам интересно узнать несколько правил, дочитайте это параграф. Кроме букв, можно пользоваться числами, но переменные не должны начинаться с них. Кроме этого допустим символ подчеркивания "_". Вот несколько примеров названий переменных.

Правильные имена переменных:

door8k

do8or

do_or

Недопустимые:

door 8 (содежит пробел)

8door (начинается с цифры)

Не рекомендуется:

Door8 (начинается с заглавной буквы)

Использование переменных в вычислениях

Теперь, когда мы знаем, как присваивать переменным значения, мы можем осуществлять расчёты. Давайте посмотрим на код [3], осуществляющий расчет площади поверхности картинки.

//[3]

pictureWidth=8;

pictureHeight=6;

pictureSurfaceArea=pictureWidth*pictureHeight;

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

//[4]

pictureWidth = 8;

pictureHeight = 6;

pictureSurfaceArea = pictureWidth * pictureHeight;

Целые и дробные

Теперь взглянем на пример [5], в частности на первые две строки.

//[5]

pictureWidth = 8;

pictureHeight = 4.5;

pictureSurfaceArea = pictureWidth * pictureHeight;

Числа можно разделить на два вида: целые и дробные. В выражениях [5.1] и [5.2] представлены оба вида. Целые используются для подсчета, например когда вам нужно сделать несколько повторений одной и той же инструкции (см. главу 7). Дробные или числа с плавающей точкой используються например в вычислениях среднего числа попаданий в бейсболе.

Код из примера [5] не будет работать. Проблема в том, что комплятору нужно знать заранее какие именно переменные вы будете использовать в своей программе и на какие типы данных они ссылаются, то есть целые числа или дробные с плавающей запятой. Это называется "объявить переменные"

//[6]

int pictureWidth;

float pictureHeight, pictureSurfaceArea;

pictureWidth = 8;

pictureHeight = 4.5;

pictureSurfaceArea = pictureWidth * pictureHeight;

В строке [6.1] int означает, что переменная pictureWidth целое число (integer). В следущей строке, мы объявляем сразу две переменные, это можно сделать при помощи запятой. Как вы можете видеть, обе переменные типа float, то есть могут хранить в них дробные числа. На самом деле, немного глупо то, что переменная pictureWidth отличается от других двух, потому что если вы умножите переменную типа int на переменную типа float

результат расчетов будет float. Вот почему вам стоит объявить pictureSurfaceArea как float [6.2].

Почему компилятор должен знать, представляет ли переменная собой целое число или число с дробной частью?

Pages: ← previous Ctrl next
1 2 3 4 5 6 7 8 9 10 11 12 13

© Copyright © 2008 by Bert Altenburg, Alex Clarke and Philippe Mougin. Version 1.15

Original (English): Become An Xcoder

Translation: © митенька, gleberof, Владимир, Антон, foxkid, f0ff4ik, Владимир Коршунов, grigsoft, iplus, sandycat, DirectX, oleganza, mscoder, ciiccii, Максим, Alexander Tsioka, Руслан, andivu, Семен, Андрей Антипов, ProRunner, blog.ikseek.od.ua, 91koff, divenvrsk, birkoff-a, dasannikov, Андрей Алексеев, nofx, Somebody, xabk, kovallux, micbsv, masta, Александр Островский, djeday, dmitri-arekhta, skazy .

License: Creative Commons License: 3.0 Attribution Non-commercial

translated.by crowd

Like this translation? Share it or bookmark!