Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

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

Следующий оператор указывает, что должна быть вызвана (call) процедура NSLog. Параметр, или аргумент (argument), должен быть передан процедуре NSLog в виде следующей строки символов: @"Programming is fun!"

Здесь символ @ стоит непосредственно перед строкой символов, заключен-ной в кавычки. Все вместе это называется объектом-константой

типа NSString.

Примечание. Если вы программировали на С, то вам может быть непонятен смысл символа-префикса @. Без этого символа вы получаете строку-константу в стиле С; с ним вы получаете объект-строку типа NSString.

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

Вы должны заканчивать все операторы программы в Objective-C символом «точка с запятой» (;). Точка с запятой ставится непосредственно после закры-вающей круглой скобки при вызове NSLog. Прежде чем выполнить выход из про-граммы, вы должны освободить выделенный пул памяти (и связанные с ним объекты). Для этого вводится следующая строка: [pool drain];

В данном случае Xcode тоже автоматически вставляет в программу эту строку. Ее подробное описание будет приведено позже. Последний оператор программы в процедуре main имеет следующий вид: return 0;

С его помощью завершается выполнение main и возвращается (return) значе-ние состояния, равное 0, которое указывает на нормальное завершение про-граммы. Любое ненулевое значение обычно означает, что возникла проблема, например, программа не смогла найти нужный файл.

На рис. 2.8. в окне Debug Console после строки результатов NSLog было выве-дено следующее сообщение: The Debugger has exited with status 0. (Выход из отладчика со значением состояния 0)

Теперь вы понимаете, что означает это сообщение.

Теперь внесем в программу изменения. Пусть она выводит также фразу «And programming in Objective-C is even more fun!» (А программировать Objective-C еще интереснее!). Это можно сделать, добавив еще один вызов процедуры NSLog, как показано ниже в программе 2.2. Напомним, что каждый оператор программы на Objective-C должен заканчиваться символом «точка с запятой». #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Programming is fun!"); NSLog (@"Programming in Objective-C is even more fun!"); [pool drain]; return 0; }

Если ввести программу 2.2 с последующей компиляцией и выполнением, то получится следующий вывод (мы опустили текст, который обычно выводится процедурой NSLog перед результатами программы): Programming is fun! Programming in Objective-C is even more fun!

Как можно видеть из следующего примера, вы не обязаны вызывать проце-дуру NSLog для каждой строки вывода.

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

новой строки, появятся в следующей строке вывода. Символ новой строки аналогичен клавише возврата каретки на пишущей машинке. Изучите листинг программы 2.3 и попытайтесь предсказать результаты, прежде чем посмотреть вывод этой программы. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog (@"Testing...\n..1\n...2\n....3H); [pool drain]; return 0; }

Вывод программы 2.3 Testing... ..1 ...2 ....3 2.3. Вывод значений переменных

С помощью NSLog можно выводить не только простые фразы, но и значения переменных или результаты вычислений. В программе 2.4 для вывода результатов сложения двух чисел, 50 и 25, используется процедура NSLog. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int sum; int sum; sum = 50 + 25; NSLog (@"The sum of 50 and 25 is %i", sum); [pool drain]; return 0; }

Вывод программы 2.4 The sum of 50 and 25 is 75 (Сумма 50 и 25 равна 75)

Первый оператор программы внутри main после autorelease pool определяет переменную sum типа integer. Вы должны определить все переменные программы перед использованием. Определение переменной указывает компилятору Objective-C, как переменная должна использоваться программой. Эта инфор-мация требуется компилятору, чтобы он сформировал соответствующие инст-рукции для сохранения и считывания значений в этой переменной. Переменную, которая определена с типом int, можно использовать для хранения только целых значений, то есть значений без цифр после десятичной точки. Примеры целых значений: 3, 5, -20 и 0. Числа с цифрами после десятичной точки, например, 2.14, 2.455 и 27.0, называются числами с плавающей запятой (floating-point% или вещественными числами.

В целой переменной sum сохраняется результат сложения двух целых чисел, 50 и 25. Мы преднамеренно оставили пустую строку после определения этой переменной, чтобы визуально отделить объявление переменной от операторов программы. Иногда добавление одной пустой строки в программе может сделать программу более удобной для чтения.

Соответствующий оператор программы выглядит так же, как в большинстве языков программирования: sum = 50 + 25;

Число 50 добавляется (что указано знаком «плюс») к числу 25, и результат сохраняется (что указано оператором присваивания, то есть знаком «равно») в переменной sum.

Вызов процедуры NSLog в программе 2.4 теперь содержит два аргумента, заключенных в круглые скобки. Эти аргументы разделены запятой. Первый аргу-мент при обращении к процедуре NSLog — это всегда символьная строка, которая должна быть выведена на экран. Но вместе с символьной строкой часто требуется выводить значения определенных переменных. В данном случае нужно вывести значение переменной sum после вывода следующей строки символов: The sum of 50 and 25 is

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

Поделиться:
Популярные книги

Кодекс Магических Зверей. Гепталогия

Сорокин Александр Сергеевич
Кодекс Магических Зверей
Фантастика:
городское фэнтези
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Магических Зверей. Гепталогия

Пламя Феникса

Пеньяранда Хлоя
6. Ночные стражники
Фантастика:
фэнтези
зарубежная фантастика
5.00
рейтинг книги
Пламя Феникса

Пришествие Зверя том 2. Антология

Хейли Гай
Warhammer 40000
Фантастика:
боевая фантастика
5.00
рейтинг книги
Пришествие Зверя том 2. Антология

Незримый гений

Kay Blue Eyes
Любовные романы:
исторические любовные романы
7.00
рейтинг книги
Незримый гений

Воины Пустошей Хаоса (сборник)

Вернер К. Л.
Warhammer Chronicles
Фантастика:
эпическая фантастика
боевая фантастика
5.00
рейтинг книги
Воины Пустошей Хаоса (сборник)

Кодекс Охотника. Книга XXXL

Винокуров Юрий
42. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXL

Хранители мечей

LitaWolf
3. Суженая из другого мира
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хранители мечей

Часовой: воин Ордена

Шторм Максим
2. Часовой
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Часовой: воин Ордена

Избранное

Брэдбери Рэй Дуглас
Золотая коллекция фантастики
Фантастика:
научная фантастика
6.25
рейтинг книги
Избранное

Дмитрий Донской. Битва за Святую Русь: трилогия

Балашов Дмитрий Михайлович
Проза:
историческая проза
5.00
рейтинг книги
Дмитрий Донской. Битва за Святую Русь: трилогия

Цветок Эридана

Розалиска Лидия
Проза:
современная проза
5.00
рейтинг книги
Цветок Эридана

Сержант. Назад в СССР. Книга 4

Гаусс Максим
4. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сержант. Назад в СССР. Книга 4

Как я съел ваши фаерболы. Дилогия

Тесленок Кирилл Геннадьевич
Как я съел ваши фаерболы
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Как я съел ваши фаерболы. Дилогия

Искусство невозможного (в 3-х томах)

Березовский Борис Абрамович
Документальная литература:
биографии и мемуары
публицистика
5.00
рейтинг книги
Искусство невозможного (в 3-х томах)