Видео с уроком находятся здесь.
В этом уроке рассказывается о словарях NSDictionary.
Есть разные способы создания словаря:
1. С помощью initWithObjectsAndKeys.
NSDictionary * dictionary=[[NSDictionary alloc] initWithObjectsAndKeys:
@"Petrov",@"lastName",
@"Vasiliy",@"name",
[NSNumber numberWithInteger:25],@"age", nil];
2. С помощью dictionaryWithObjectsAndKeys.
NSDictionary * dictionary2=[NSDictionary dictionaryWithObjectsAndKeys:@"Ivanov",@"lastName", @"Petya",@"name", nil];
3. С использованием литералов:
NSDictionary * dictionary3= @{@"name":@"Alex",@"lastName":@"Pupkin",@"age":@20};
Так же можно по разному организовать вывод словаря NSDictionary:
1. С помощью objectForKey:
NSLog(@"%@. Dictionary count=%@",dictionary3,@([dictionary3 count]));
NSLog(@"name=%@, lastName=%@, age=%@",[dictionary objectForKey:@"name"],[dictionary objectForKey:@"lastName"],@([[dictionary objectForKey:@"age"] integerValue ]));
for (NSString *key in [dictionary3 allKeys] ) {
id obj=[dictionary3 objectForKey:key];
NSLog(@"Key: %@. Value: %@.",key,obj);
}
2. С помощью литералов:
NSLog(@"Literals print: Name:%@, lastName: %@",dictionary2[@"name"],dictionary2[@"lastName"]);
Вот кстати наткнулся на наглядные примеры литералов.
В принципе код урока весь приведен, но на всякий случай выкладываю файлы проекта.
Домашнее задание к уроку 8 NSDictionary:
Уровень Ученик
1. Создайте класс студент со свойствами имя, фамилия и фраза приветствия.
2. Создайте 10 - 15 объектов этого класса.
3. Теперь мы создадим дикшинари типо школьный журнал, где ключ будет фамилия + имя, а значение сам студент.
4. Распечатайте дикшинари
Уровень Студент.
4. В цикле пройдемся по всем ключам в дикшинари и распечатаем имя и фамилию каждого студента + его фразу приветствия.
Уровень Мастер.
5. Чтобы сделать тоже самое но по какому-то порядку, отсортируйте массив ключей по возрастанию и выведите приветствие каждого студента из дикшинари, но уже по отсортированному списку.
Выполнил все задания.
Сортировка к 5 заданию делается следующей конструкцией:
NSArray *array=[dictionary keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2){return [[obj1 GetStudentID] compare:[obj2 GetStudentID]];}];
Исходные коды к ДЗ8 NSDictionary.
В этом уроке рассказывается о словарях NSDictionary.
Есть разные способы создания словаря:
1. С помощью initWithObjectsAndKeys.
NSDictionary * dictionary=[[NSDictionary alloc] initWithObjectsAndKeys:
@"Petrov",@"lastName",
@"Vasiliy",@"name",
[NSNumber numberWithInteger:25],@"age", nil];
2. С помощью dictionaryWithObjectsAndKeys.
NSDictionary * dictionary2=[NSDictionary dictionaryWithObjectsAndKeys:@"Ivanov",@"lastName", @"Petya",@"name", nil];
3. С использованием литералов:
NSDictionary * dictionary3= @{@"name":@"Alex",@"lastName":@"Pupkin",@"age":@20};
Так же можно по разному организовать вывод словаря NSDictionary:
1. С помощью objectForKey:
NSLog(@"%@. Dictionary count=%@",dictionary3,@([dictionary3 count]));
NSLog(@"name=%@, lastName=%@, age=%@",[dictionary objectForKey:@"name"],[dictionary objectForKey:@"lastName"],@([[dictionary objectForKey:@"age"] integerValue ]));
for (NSString *key in [dictionary3 allKeys] ) {
id obj=[dictionary3 objectForKey:key];
NSLog(@"Key: %@. Value: %@.",key,obj);
}
2. С помощью литералов:
NSLog(@"Literals print: Name:%@, lastName: %@",dictionary2[@"name"],dictionary2[@"lastName"]);
Вот кстати наткнулся на наглядные примеры литералов.
В принципе код урока весь приведен, но на всякий случай выкладываю файлы проекта.
Домашнее задание к уроку 8 NSDictionary:
Уровень Ученик
1. Создайте класс студент со свойствами имя, фамилия и фраза приветствия.
2. Создайте 10 - 15 объектов этого класса.
3. Теперь мы создадим дикшинари типо школьный журнал, где ключ будет фамилия + имя, а значение сам студент.
4. Распечатайте дикшинари
Уровень Студент.
4. В цикле пройдемся по всем ключам в дикшинари и распечатаем имя и фамилию каждого студента + его фразу приветствия.
Уровень Мастер.
5. Чтобы сделать тоже самое но по какому-то порядку, отсортируйте массив ключей по возрастанию и выведите приветствие каждого студента из дикшинари, но уже по отсортированному списку.
Выполнил все задания.
Сортировка к 5 заданию делается следующей конструкцией:
NSArray *array=[dictionary keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2){return [[obj1 GetStudentID] compare:[obj2 GetStudentID]];}];
Исходные коды к ДЗ8 NSDictionary.