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

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



>#import "Person.h"


>@implementation Person


>+ (CGFloat) maximumHeightInCentimeters{

>return 250.0f;

>}


>+ (CGFloat) minimumHeightInCentimeters{

>return 40.0f;

>}


>@end


Метод maximumHeightInCentimeters – это метод класса, возвращающий гипотетический максимальный рост любого персонажа в сантиметрах. Метод класса minimumHeightInCentimeters возвращает минимальный рост любого персонажа. Вот как мы предоставим оба этих метода в файле интерфейса нашего класса:


>#import 


>@interface Person: NSObject


>@property (nonatomic, copy) NSString *firstName;

>@property (nonatomic, copy) NSString *lastName;

>@property (nonatomic, assign) CGFloat currentHeight;


>+ (CGFloat) maximumHeightInCentimeters;

>+ (CGFloat) minimumHeightInCentimeters;


>@end

Мы добавили к нашему классу Person еще одно свойство, принимающее значения с плавающей точкой. Оно называется currentHeight. С его помощью экземпляры этого класса могут хранить информацию о своей высоте в памяти (для справки) – точно так же, как имя и фамилию.

А в делегате нашего приложения мы продолжим работать с методами вот так:

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

>didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{


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

>steveJobs.firstName = @"Steve";

>steveJobs.lastName = @"Jobs";

>steveJobs.currentHeight = 175.0f; /* Сантиметры */


>if (steveJobs.currentHeight >= [Person minimumHeightInCentimeters] &&

>steveJobs.currentHeight <= [Person maximumHeightInCentimeters]){

>/* Высота этого персонажа находится в пределах допустимого */

>} else {

>/* Высота этого персонажа находится вне пределов допустимого */

>}


>self.window = [[UIWindow alloc]

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

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

>[self.window makeKeyAndVisible];

>return YES;

>}

Соблюдение требований, предъявляемых другими классами, с помощью протоколов

В языке Objective-C существует концепция под названием «протокол». Протоколы встречаются и во многих других языках, но называются везде по-разному; например, в Java аналогичная сущность называется «интерфейс». Как понятно из названия, протокол – это набор правил, которым класс должен соответствовать, чтобы его можно было использовать тем или иным образом. Если класс выполняет правила определенного протокола, то принято говорить, что он