Литералы — это синтаксические упрощения Objective-C моделей программирования. Они делают код приложения более кратким и сгрупированным.
Для общей наглядности ниже приведена таблица различия кода с использованием литералов и без.
| Описание | Без литерала | С литералом |
| NSNumber из BOOL | [NSNumber numberWithBool:YES] | @YES |
| NSNumber из bool | [NSNumber numberWithBool:(BOOL)false] | @false |
| NSNumber из Int | [NSNumber numberWithInt:123] | @123 |
| NSNumber из Double | [NSNumber numberWithDouble:3.14] | @3.123 |
| NSNumber из Float | [NSNumber numberWithFloat:3.14] | @3.123F |
| NSNumber из Long | [NSNumber numberWithLong:123L] | @123L |
| NSNumber из LongLong | [NSNumber numberWithLongLong:123LL] | @123LL |
| NSNumber из UnsignedInt | [NSNumber numberWithUnsignedInt:123U] | @123U |
| NSNumber из Char | [NSNumber numberWithChar:’ILYA2606’] | @’ILYA2606’ |
| Массив с тремя объектами | [NSArray arrayWithObjects:@”Moscow”, @”London”, @”New-York”, nil] | @[@”Moscow”, @”London”, @”New-York”] |
| Словарь с двумя ключами | [NSDictionary dictionaryWithObjectsAndKeys:@”xxx”, @”login”, @”yyy”, @”password”, nil] | @{@”login”: @”xxx”, @”password”: @”yyy”} |
| Чтение значения первого элемента массива | [array objectAtIndex:0] | array[0] |
| Запись значения в первый элемент массива | [array replaceObjectAtIndex:0 withObject:@”xxx”] | array[0] = @”xxx” |
| Чтение значения словаря по ключу «login» | [dict objectForKey:@”login”] | dict[@”login”] |
| Запись значения в словарь по ключу «login» | [dict setObject:@”xxx” forKey:@”login”] | dict[@”login”] = @”xxx” |
| Пример выражения | [NSNumber numberWithDouble:(M_PI / 2)] | @(M_PI / 2) |
| Пример вложения | [NSArray arrayWithObjects:[NSNumber numberWithInt:123], [dict objectForKey:@”login”], [NSNumber numberWithInt:NSASCIIStringEncoding], nil] | @[@123, dict[@”login”], @(NSASCIIStringEncoding)] |
Немає коментарів:
Дописати коментар