суббота, 27 июня 2009 г.

Objective C и XCode: первые шаги. часть 2.


Как вызывать методы объектов


Методы в Objective C дёргаются в виде сообщений, которые посылаются соответствующему объекту. Весь вызов обрамляется в квадратные скобки.


Пример на Java:


if (x.intersectsArc(35.0, 19.0, 23.0, 90.0, 120.0))


Аналог на Objective C:


if ([x intersectsArcWithRadius:35.0 centeredAtX:19.0 Y:23.0 fromAngle:90.0 toAngle:120.0])


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


 


Базовые классы


Проводя аналогию с Java, вот иерархия основных классов (аналогов Object, String, ArrayList и т. п.):


base-cocoa-classes


Причём Array в Objective C не может иметь дырки (т. е. ячейки с пустым указателем), если нужно иметь дырку, можно вставить туда специальный NULL объект.


Null вообще клево обрабатывается, например вот такую проверку


if (foo != null) { 

foo.doThatThingYouDo();

}

 не нужно делать:

id foo;

foo = nil;
int bar = [foo count];


Этот код не вызовет никакого Null pointer exception, переменная bar будет установлена в дефолтное значение (ноль). id – это такой специальный тип данных, означающий указатель на объект любого типа.


 


Основные методы базового класса NSObject


NSObject – базовый класс для всех других классов. Аналог класса Object в Java. И как в жаве он имеет важные методы (о других важных методах в следующих выпусках):


- (id) init – аналог конструктора в Java.


Создаются объекты обычно так:


 TheClass *newObject = [[TheClass alloc] init];


 alloc – метод класса TheClass, который аллоцирует память и создаёт экземпляр класса.
init – инициализирует поля класса и выполняет всю необходимую логику. Естественно конструктор (метод init) можно перегружать. 


- (NSString *) description – аналог toString() в Java. Строковое описание объекта, для дебага и тому подобных нужд.





Как устроен проект в XCode


Вот как выглядит основное окно среды разработки для простейшего проекта (консольное приложение без GUI):


xcode-snap-foundation-tool


Слева видно всё содержимое проекта – исходники, документация, ссылки на библиотеки, использующиеся в проекте (в Mac OS X они называются frameworks, в данном случае это только Foundation.framework), продукты, которые получаются из проекта, build-targets (не знаю как это по-русски правильно назвать) c наглядным представлением шагов сборки, ошибки и предупреждения, найденные при компиляции, закладки, поиски и т. п.


Вверху настраиваемая менюшка с разными кнопками (сборка, сборка+запуск, рефакторинг, выбор типа компиляции – debug/release, intel/ppc), справа – редактор кода и навигатор по файлам.

0 коммент.:

Отправить комментарий

 

Alex Sapkov Copyright © 2009