Общий формат для объявления объекта в Objective-C следующий:

Здесь определяются переменные var1, var2, … как объекты из класса имяКласса. Отметим, что это объявление переменных-указателей, при котором не выделяется пространство для конкретных данных, содержащихся в каждом объекте.

Details

Массив в Foundation Framework — это упорядоченный набор объектов. Чаще всего(но не обязательно) элементы массива имеют один определенный тип. Аналогично мутабельным и немутабельным строкам, существуют мутабельные и немутабельные массивы.

Для работы с немутабельными(immutable) массивами используется класс NSArray. Для мутабельных(mutable) массивов используется класс NSMutableArray. Последний класс является подклассом предыдущего и наследует его методы.

Details

Мы уже работали со строковыми объектами в предыдущих уроках нашего блога. Заключая последовательность символов в кавычки, как в:

мы создаем в Objective-C объект символьной строки. Для работы с объектами символьных строк Foundation framework поддерживает класс с именем NSString. Строки языка Objective-C состоят из символов типа char, а объекты класса NSString состоят из символов типа unichar. Unichar символ это многобайтный символ, соответствующий стандарту Unicode.

Это позволяет работать с наборами символов, содержащими буквально миллионы символов. Вам не нужно заботиться о внутреннем представлении этих символов в строках, поскольку класс NSString автоматически делает это для вас. С помощью методов из этого класса легко разрабатывать приложения, доступные для локализации, то есть для работы на различных языках по всему миру. Details

Фреймворк(framework) — это набор классов, методов, функций и документации, логически сгруппированных для упрощения разработки программ.

В системе Mac OS X имеется более 80 фреймворков для разработки приложений. Они позволяют упростить работу со структурой Mac Addsress Book, выполнять запись на CD, воспроизведение DVD, воспроизведение фильмов с помощью QuickTime, воспроизведение музыки и так далее.

Фреймворк, который является базой для разработки программ, называется Foundation framework. Этот фреймворк, позволяет работать с базовыми объектами, такими как числа и строки, а также с коллекциями объектов, такими как массивы, словари и наборы(множества). Details

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

В Objective-C имеется оператор с именем sizeof, который можно использовать для определения размера типа данных или объекта. Оператор sizeof возвращает размер указанного элемента в байтах.

Аргументом для оператора sizeof может быть переменная, имя массива, имя базового типа данных, объект, имя производного типа данных или выражение. Например, написав: Details

Оператор goto в Objective-C вызывает непосредственный переход в указанную точку программы. Чтобы указать это место, требуется метка. Метка(label) — это имя, формируемое по таким же правилам, как имена переменных. Сразу после него ставится двоеточие.

Метка ставится непосредственно перед оператором, на который выполняется переход, и должна присутствовать в той же функции или методе, где находится соответствующий goto. Details

Память компьютера можно рассматривать как последовательный набор ячеек памяти. Каждая ячейка памяти компьютера имеет свой номер, называемый адресом. Обычно первый адрес памяти имеет номер 0. В большинстве компьютерных систем ячейка занимает 1 байт.

Компьютер использует память для хранения команд программы и хранения значений переменных, связанных с программой.

Например, если мы объявим переменную с именем count типа int, то система выделит ячейки в памяти, чтобы сохранять значение count во время выполнения программы. Это может быть, например адрес 1000FF16 в памяти компьютера.

К счастью, нам не нужно думать о конкретных адресах памяти, связанных с переменными, поскольку система делает это автоматически. Однако знание того, что каждая переменная связана со своим адресом в памяти, помогает понять, как действуют указатели. Details

Указатели(Pointer) позволяют эффективно представлять сложные структуры данных, изменять значения, передаваемые в виде аргументов функциям и методам, а также проще и эффективнее работать с массивами.

В конце этой статьи мы расскажем, насколько они важны для реализации объектов в языке Objective-C.

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

Предположим, мне нужно купить новый картридж с тонером для моего принтера. В компании, где я работаю, все приобретения выполняются через отдел снабжения, поэтому я звоню сотруднику этого отдела и прошу заказать для меня новый картридж. Details

Как и методы, функции могут возвращать значение. Тип значения, возвращаемого с помощью оператора return, должен быть согласован с типом возвращаемого значения, объявленного для этой функции. В объявлении функции, которое начинается с:

содержится определение функции с именем kmh_to_mph, которая принимает один аргумент типа float с именем km_speed и возвращает значение тоже типа float. Аналогичным образом:

определяет функцию gcd(наибольший общий делитель) с целыми аргументами u и v и возвращает целое значение.

В программе 1.4 функции передаются два аргумента в виде двух чисел, для которых нужно определить их наибольший общий делитель(gcd, greatest common divisor). Details

Элементам массива можно назначать начальные значения точно так же, как переменным при их объявлении. Для этого нужно просто перечислить начальные значения массива, начиная с первого элемента. Значения в списке разделяются запятыми, и весь список заключается в фигурные скобки.

В операторе:

элементу integers[0] присваивается значение 1, integers[1] — значение 1, integers[2] — значение 2 и так далее.

Массивы символов инициализируются аналогичным образом. Например, в операторе: Details

Язык Objective-C позволяет определить набор упорядоченных элементов данных, который называется массивом(array). На нашем блоге описывается определение и управление массивами. Также на блоге описывается использование массивов совместно с функциями, структурами, символьными строками и указателями.

Предположим, что вам нужно считать набор оценок(grades) и затем выполнить с ними некоторые операции, например, расположить их в порядке возрастания, вычислить среднее значение и найти медиану. Вы не можете выполнить эти операции, пока не введете все оценки.

В Objective-C вы можете определить переменную с именем grader, которая представляет не одно значение оценки, а весь набор оценок. Для ссылки на элементы этого набора используется число, которое называется порядковым номером, или индексом(index или subscript). Details

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

Эти файлы обычно имеют расширение имени .h и называются заголовочными (header) или включаемыми(include) файлами.

Предположим, что мы пишем набор программ для метрических преобразований. Нам нужно задать операторы #define для констант, которые требуются при выполнении этим преобразований. Details

Оператор #define позволяет присваивать символические имена программным константам. Оператор препроцессора:

определяет имя TRUE и делает его эквивалентным значению 1. Затем имя TRUE можно использовать в любом месте программы, где могла бы использоваться константа 1.

Там, где появляется это имя, препроцессор автоматически подставляет вместо него значение 1. Например, следующий оператор Objective-C использует определенное имя TRUE. Details

Objective-C позволяет назначать для типа данных альтернативное имя. Для этого используется оператор typedef. В следующей строке определяется имя Counter(счетчик) как эквивалент типа данных Objective-C int.

Затем можно объявить переменные с типом Counter, как в следующей строке.

Компилятор Objective-C будет интерпретировать это как объявление обычных целых переменных j и n. Определение j и n посредством typedef указывает назначение переменных в программе.

Объявление в традиционной форме с типом int оставило бы их назначение непонятным. Ниже с помощью typedef определяется тип с именем NumberObject для объектов типа Number. Details

Язык Objective-C позволяет объединять арифметические операторы с оператором присваивания в обобщенном формате:

В этом формает op — любой из арифметических операторов, включая +,-,*,/ или %. Кроме того, op может быть любым из битовых операторов для смещения и маскирования, которые описываются ниже.

Рассмотри строку: Details

Экземпляры являются сердцем активности программы на языке Objective-C. Получение и управление экземплярами будет иметь решающие значение для всего, что вы делаете. Почти каждая строка вашего кода будет связана с одним или несколькими из следующих видов деятельности: Details