iOS. Приемы программирования. Вандад Нахавандипур

iOS. Приемы программирования - Вандад Нахавандипур


Скачать книгу
за подсвечивание сцен в вашей игре. У этого класса может быть метод dimAllLights. Вызвав этот метод, программист погасит в игре все источники света независимо от того, где они находятся. Рассмотрим пример метода класса, применяемого с нашим классом Person:

      #import "Person.h"

      @implementation Person

      + (CGFloat) maximumHeightInCentimeters{

      return 250.0f;

      }

      + (CGFloat) minimumHeightInCentimeters{

      return 40.0f;

      }

      @end

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

      #import <Foundation/Foundation.h>

      @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 аналогичная сущность называется «интерфейс». Как понятно из названия, протокол – это набор правил, которым класс должен соответствовать, чтобы его можно было использовать тем или иным образом. Если класс выполняет правила определенного протокола, то принято говорить, что он соответствует этому протоколу. Протоколы отличаются от самих классов тем, что не имеют реализации. Это просто правила. Например, у любой машины есть колеса, дверцы и цвет кузова, а также многие другие свойства. Определим эти свойства в протоколе Car. Просто выполните следующие шаги, чтобы создать заголовочный файл, который может содержать наш протокол Car.

      1. Откройте ваш проект в Xcode и в меню File (Файл) выберите New-File (Новый – Файл).

      2. Убедитесь, что слева, в разделе iOS, вы выбрали категорию Cocoa Touch. После этого выберите элемент Objective-C Protocol (Протокол для Objective-C) и нажмите Next (Далее).

      3. В разделе Class (Класс) введите


Скачать книгу