Objective-C Language
Modern Objective-C
Szukaj…
Literały
Współczesny cel C zapewnia sposoby na zmniejszenie ilości kodu potrzebnego do zainicjowania niektórych popularnych typów. Ten nowy sposób jest bardzo podobny do sposobu inicjowania obiektów NSString ciągłymi łańcuchami.
NSNumber
Stara droga:
NSNumber *number = [NSNumber numberWithInt:25];
Nowoczesny sposób:
NSNumber *number = @25;
Uwaga: Można również przechowywać BOOL
wartości NSNumber
obiekty za pomocą @YES
, @NO
lub @(someBoolValue)
;
NSArray
Stara droga:
NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", [NSNumber numberWithInt:3], @"Four", nil];
Nowoczesny sposób:
NSArray *array = @[@"One", @"Two", @3, @"Four"];
NSDictionary
Stara droga:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: array, @"Object", [NSNumber numberWithFloat:1.5], @"Value", @"ObjectiveC", @"Language", nil];
Nowoczesny sposób:
NSDictionary *dictionary = @{@"Object": array, @"Value": @1.5, @"Language": @"ObjectiveC"};
Indeksowanie kontenerów
We współczesnej składni Objective C można uzyskać wartości z NSArray
i NSDictionary
pojemników z wykorzystaniem kontenera indeksowanie.
Stara droga:
NSObject *object1 = [array objectAtIndex:1];
NSObject *object2 = [dictionary objectForKey:@"Value"];
Nowoczesny sposób:
NSObject *object1 = array[1];
NSObject *object2 = dictionary[@"Value"];
Możesz także wstawiać obiekty do tablic i ustawiać obiekty dla kluczy w słownikach w czystszy sposób:
Stara droga:
// replacing at specific index
[mutableArray replaceObjectAtIndex:1 withObject:@"NewValue"];
// adding a new value to the end
[mutableArray addObject:@"NewValue"];
[mutableDictionary setObject:@"NewValue" forKey:@"NewKey"];
Nowoczesny sposób:
mutableArray[1] = @"NewValue";
mutableArray[[mutableArray count]] = @"NewValue";
mutableDictionary[@"NewKey"] = @"NewValue";
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow