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

Читать онлайн.
Название iOS. Приемы программирования
Автор произведения Вандад Нахавандипур
Жанр Программирование
Серия Бестселлеры O’Reilly (Питер)
Издательство Программирование
Год выпуска 2014
isbn 978-5-496-01016-0



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

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

      Full name = Mark Tremonti

      Age = 30, Sex = Male

      Можно также использовать изменяемые словари, которые довольно сильно похожи на изменяемые массивы. Содержимое изменяемого словаря можно изменить после того, как словарь инстанцирован. Пример:

      NSDictionary *personInformation =

      @{

      @"firstName": @"Mark",

      @"lastName": @"Tremonti",

      @"age": @30,

      @"sex": @"Male"

      };

      NSMutableDictionary *mutablePersonInformation =

      [[NSMutableDictionary alloc] initWithDictionary: personInformation];

      mutablePersonInformation[@"age"] = @32;

      NSLog(@"Information = %@", mutablePersonInformation);

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

      Information = {

      age = 32;

      firstName = Mark;

      lastName = Tremonti;

      sex = Male;

      }

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

      NSSet *shoppingList = [[NSSet alloc] initWithObjects:

      @"Milk",

      @"Bananas",

      @"Bread",

      @"Milk", nil];

      NSLog(@"Shopping list = %@", shoppingList);

      Запустив эту программу, вы получите следующий вывод:

      Shopping list = {(

      Milk,

      Bananas,

      Bread

      )}

      Обратите внимание: элемент Milk упомянут в программе дважды, а в множество добавлен всего один раз. Эта черта множеств – настоящее волшебство. Изменяемые множества можно использовать и вот так:

      NSSet *shoppingList = [[NSSet alloc] initWithObjects:

      @"Milk",

      @"Bananas",

      @"Bread",

      @"Milk", nil];

      NSMutableSet *mutableList = [NSMutableSet setWithSet: shoppingList];

      [mutableList addObject:@"Yogurt"];

      [mutableList removeObject:@"Bread"];

      NSLog(@"Original list = %@", shoppingList);

      NSLog(@"Mutable list = %@", mutableList);

      А вывод будет таким:

      Original list = {(

      Milk,

      Bananas,

      Bread

      )}

      Mutable list = {(

      Milk,

      Bananas,

      Yogurt

      )}

      Обсуждая множества и коллекции, следует упомянуть еще два важных класса, о которых вам необходимо знать:

       NSOrderedSet – неизменяемое множество, учитывающее, в каком порядке в него добавлялись объекты;

      • NSMutableOrderedSet – изменяемый вариант вышеупомянутого изменяемого множества.

      По умолчанию множества не учитывают, в каком порядке объекты в них добавлялись. Рассмотрим пример:

      NSSet *setOfNumbers = [NSSet setWithArray:@[@3, @4, @1, @5, @10]];

      NSLog(@"Set of numbers = %@", setOfNumbers);

      Запустив эту программу, получим на экране следующий вывод:

      Set of numbers = {(

      5,

      10,

      3,

      4,

      1

      )}

      Но на самом деле мы наполняли множество элементами в другом порядке. Если вы хотите сохранить правильный порядок, просто воспользуйтесь классом