Литералы — это синтаксические упрощения 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)] |
Немає коментарів:
Дописати коментар