Итак, у нас есть класс 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];