サーチ…


リテラル

Modern Objective 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