Objective-C Language
Oggettivo moderno-C
Ricerca…
letterali
Modern Objective C fornisce modi per ridurre la quantità di codice necessaria per inizializzare alcuni tipi comuni. Questo nuovo modo è molto simile a come gli oggetti NSString sono inizializzati con stringhe costanti.
NSNumber
Vecchio modo:
NSNumber *number = [NSNumber numberWithInt:25];
Modo moderno:
NSNumber *number = @25;
Nota: è anche possibile memorizzare BOOL
valori in NSNumber
oggetti utilizzando @YES
, @NO
o @(someBoolValue)
;
NSArray
Vecchio modo:
NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", [NSNumber numberWithInt:3], @"Four", nil];
Modo moderno:
NSArray *array = @[@"One", @"Two", @3, @"Four"];
NSDictionary
Vecchio modo:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: array, @"Object", [NSNumber numberWithFloat:1.5], @"Value", @"ObjectiveC", @"Language", nil];
Modo moderno:
NSDictionary *dictionary = @{@"Object": array, @"Value": @1.5, @"Language": @"ObjectiveC"};
Sottoscrizione del contenitore
Nella moderna sintassi dell'Objective C è possibile ottenere valori dai contenitori NSArray
e NSDictionary
utilizzando l'indice del contenitore.
Vecchio modo:
NSObject *object1 = [array objectAtIndex:1];
NSObject *object2 = [dictionary objectForKey:@"Value"];
Modo moderno:
NSObject *object1 = array[1];
NSObject *object2 = dictionary[@"Value"];
È inoltre possibile inserire oggetti negli array e impostare gli oggetti per le chiavi nei dizionari in modo più pulito:
Vecchio modo:
// replacing at specific index
[mutableArray replaceObjectAtIndex:1 withObject:@"NewValue"];
// adding a new value to the end
[mutableArray addObject:@"NewValue"];
[mutableDictionary setObject:@"NewValue" forKey:@"NewKey"];
Modo moderno:
mutableArray[1] = @"NewValue";
mutableArray[[mutableArray count]] = @"NewValue";
mutableDictionary[@"NewKey"] = @"NewValue";