Поиск…


литералы

Современная цель C предоставляет способы сокращения количества кода, необходимого для инициализации некоторых распространенных типов. Этот новый способ очень похож на то, как объекты NSString инициализируются постоянными строками.

NSNumber

Старый путь:

NSNumber *number = [NSNumber numberWithInt:25];

Современный способ:

NSNumber *number = @25;

Примечание: Вы также можете хранить BOOL значения в NSNumber объектов с использованием @YES , @NO или @(someBoolValue) ;

NSArray

Старый путь:

NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", [NSNumber numberWithInt:3], @"Four", nil]; 

Современный способ:

NSArray *array = @[@"One", @"Two", @3, @"Four"];

NSDictionary

Старый путь:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: array, @"Object", [NSNumber numberWithFloat:1.5], @"Value", @"ObjectiveC", @"Language", nil];

Современный способ:

NSDictionary *dictionary = @{@"Object": array, @"Value": @1.5, @"Language": @"ObjectiveC"};

Контейнерные подписки

В современном синтаксисе Objective C вы можете получать значения из NSArray и NSDictionary используя контейнерные подписки.

Старый путь:

NSObject *object1 = [array objectAtIndex:1];
NSObject *object2 = [dictionary objectForKey:@"Value"];

Современный способ:

NSObject *object1 = array[1];
NSObject *object2 = dictionary[@"Value"];

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

Старый путь:

// replacing at specific index
[mutableArray replaceObjectAtIndex:1 withObject:@"NewValue"];
// adding a new value to the end
[mutableArray addObject:@"NewValue"];

[mutableDictionary setObject:@"NewValue" forKey:@"NewKey"];

Современный способ:

mutableArray[1] = @"NewValue";
mutableArray[[mutableArray count]] = @"NewValue";

mutableDictionary[@"NewKey"] = @"NewValue";


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow