Разработка под Мак. Часть 6. Создание своего класса

Jul 12, 2012 18:17



В этой части - как написать свой класс и вызвать его метод.


Создание класса

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

Попробуем написать свой класс.

Для создания нового класса в Xcode выбираем пункт меню "File -> New -> File...". В открывшемся окне выбираем шаблон "Objective-C class".

1. Выбор шаблона для нового файла


Класс будет выводить сообщения, так что назовем его Message. Наш класс будет наследоваться от базового класс NSObject, так что второе поле следует оставить как есть.

2. Название класса


И, наконец, сохраняем класс. В зависимости от того, в каком контексте вы вызвали меню создания класса, в выпадающем списке "Group" может быть выбрано разное значение. Легко перепутать папку и группу проекта, так как они называются одинаково. Проследите, чтобы была выбрана желтая папка группы.

3. Сохранение класса


После этого в навигаторе, в группе Apptest, появятся два новых файла - заголовочный файл и файл реализации.

4. Созданы два файла класса


Создаем метод класса

Для начала опишем метод showMessage в заголовочном файле Message.h:

---- код ----
- (void)showMessage:(id)message;
---- код ----
Затем реализуем этот метод в файле реализации Message.m:

---- код ----
- (void)showMessage:(id)message {
    NSAlert *alert = [[NSAlert alloc] init];
    [alert setMessageText:message];
    [alert runModal];
}
---- код ----

Таким образом, наш класс содержит один метод showMessage, который принимает один параметр message и выводит полученное в параметре сообщение на экран, в окне уведомления.

Вызов метода

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

Переключаемся на файл AppDelegate.m и включаем в него заголовочный файл нашего класса. Вместе с заголовком самого AppDelegate получится так:

---- код ----
#import "AppDelegate.h"
#import "Message.h"
---- код ----

Теперь напишем функцию, которая будет вызываться из графического интерфейса. Эта функция, в свою очередь, будет вызывать наш метод.

---- код ----

- (IBAction)pushButton:(id)sender {
    // Создаем объект нашего класса Message
    Message *mes = [[Message alloc] init];

// Сообщение будет таким
    NSString * message = @"Hello World!";

// Вызываем метод из нашего класса
    [mes showMessage:message];
}---- код ----

Надо бы разобраться, почему метод pushButton не потребовалось объявлять в заголовочном файле AppDelegate.h.

Остается сделать в окне программы кнопку и связать ее с функцией pushButton.

5. Кнопка связана с действием


Теперь остается скомпилировать и запустить приложение. Нажатие кнопки вызовет действие pushButton. Это действие, в свою очередь, вызовет метод showMessage из класса Message.

6. Сообщение


Окно с сообщением можно закрыть и вызвать еще 100500 раз:)

Репозиторий, бранч class

Часть 5. Работа с файлами

mac, разработка

Previous post Next post
Up