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

Читать онлайн книгу iOS. Приемы программирования - Вандад Нахавандипур страница 12

СКАЧАТЬ style="font-size:15px;">      @end

      Отлично. Теперь мы понимаем основы работы с протоколами, то, как они работают и как их определить. Далее в этой книге мы подробнее поговорим о протоколах, а на данный момент вы получили довольно полное представление о них.

      Хранение элементов в коллекциях и получение элементов из коллекций

      Коллекции – это такие объекты, в экземплярах которых могут храниться другие объекты. Одна из самых распространенных разновидностей коллекций – это массив, который инстанцирует NSArray или NSMutableArray. В массиве можно хранить любой объект, причем массив может содержать несколько экземпляров одного и того же объекта. В следующем примере мы создаем массив из трех строк:

      NSArray *stringsArray = @[

      @"String 1",

      @"String 2",

      @"String 3"

      ];

      __unused NSString *firstString = stringsArray[0];

      __unused NSString *secondString = stringsArray[1];

      __unused NSString *thirdString = stringsArray[2];

      Макрос __unused приказывает компилятору «не жаловаться», когда переменная – в нашем случае переменная firstString – объявлена, но ни разу не использовалась. По умолчанию в такой ситуации компилятор выдает в консоль предупреждение, сообщающее, что переменная не используется. В нашем кратком примере мы объявили переменные, но не задействовали их. Поэтому, если добавить вышеупомянутый макрос в начале объявления переменной, это вполне устроит и нас, и компилятор.

      Изменяемый массив – это такой массив, в который можно вносить изменения уже после того, как он был создан. Как мы видели ранее, неизменяемый массив не может быть дополнен новой информацией уже после создания. Вот пример неизменяемого массива:

      NSString *string1 = @"String 1";

      NSString *string2 = @"String 2";

      NSString *string3 = @"String 3";

      NSArray *immutableArray = @[string1, string2, string3];

      NSMutableArray *mutableArray = [[NSMutableArray alloc]

      initWithArray: immutableArray];

      [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:1];

      [mutableArray removeObjectAtIndex:1];

      [mutableArray setObject: string1 atIndexedSubscript:0];

      NSLog(@"Immutable array = %@", immutableArray);

      NSLog(@"Mutable Array = %@", mutableArray);

      Вывод этой программы таков:

      Immutable array = (

      "String 1",

      "String 2",

      "String 3"

      )

      Mutable Array = (

      "String 1",

      "String 3"

      )

      Еще одна распространенная коллекция, которая часто встречается в программах для iOS, – это словарь. Словари похожи на массивы, но каждому объекту в словаре присваивается ключ, и по этому ключу вы можете позже получить интересующий вас объект. Рассмотрим пример:

      NSDictionary *personInformation =

      @{

      @"firstName": @"Mark",

      @"lastName": @"Tremonti",

      @"age": @30,

      @"sex": @"Male"

      };

      NSString *firstName = personInformation[@"firstName"];

      NSString *lastName = personInformation[@"lastName"];

      NSNumber *age = personInformation[@"age"];

      NSString *sex = personInformation[@"sex"];

СКАЧАТЬ