iOS. Приемы программирования - страница 17

Шрифт
Интервал


Итак, у нас есть класс Person с двумя свойствами, firstName и lastName. Вернемся к файлу реализации делегата нашего приложения (AppDelegate.m) и создадим объект типа Person:


>#import "AppDelegate.h"

>#import "Person.h"

>@implementation AppDelegate


>– (BOOL) application:(UIApplication *)application

>didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{


>Person *person = [[Person alloc] init];


>person.firstName = @"Steve";

>person.lastName = @"Jobs";


>self.window = [[UIWindow alloc]

>initWithFrame: [[UIScreen mainScreen] bounds]];

>self.window.backgroundColor = [UIColor whiteColor];

>[self.window makeKeyAndVisible];

>return YES;

>}


В этом примере мы выделяем и инициализируем наш экземпляр класса Person. Возможно, вы еще не понимаете, что это значит, но в подразделе «Добавление функционала к классам с помощью методов», приведенном далее, мы подробно об этом поговорим.

Добавление нового функционала к классам с помощью методов

Методы – это строительные блоки, из которых состоят классы. Например, класс Person может иметь логические возможности – обозначим их как «ходить», «дышать», «есть» и «пить». Обычно такие функции инкапсулируются в методах.

Метод может принимать параметры. Параметры – это переменные, передаваемые вызывающей стороной при вызове метода и видимые только этому методу. Например, в упрощенном мире у нашего класса Person был бы метод walk. Но вы могли бы добавить к этому методу параметр или аргумент и назвать его walkingSpeed. Этому параметру вы бы присвоили тип CGFloat. Теперь, если другой программист вызовет этот метод в вашем классе, он может указать, с какой скоростью будет идти Person. Вы как автор класса напишете соответствующий код, который будет обрабатывать различные скорости ходьбы Person. Не переживайте, если у вас возникает ощущение «как-то много работы получается». Рассмотрим следующий пример. В нем я добавил метод в файл реализации того класса Person, который мы создали в подразделе «Как создавать классы и правильно пользоваться ими» данного раздела.


>#import "Person.h"


>@implementation Person


>– (void) walkAtKilometersPerHour:(CGFloat)paramSpeedKilometersPerHour{

>/* здесь пишем код для этого метода */

>}


>– (void) runAt10KilometersPerHour{

>/* Вызываем метод walk в нашем собственном классе и передаем значение 10 */

>[self walkAtKilometersPerHour:10.0f];