Принятый ответ (хотя и истинный в то время) устарел. Начиная с Xcode 4.5, теперь вы можете устанавливать и получать элементы NSArray, используя:
id object = array[5]; // equivalent to [array objectAtIndex:5];
mutableArray[5] = object; // equivalent to [mutableArray replaceObjectAtIndex:5 withObject:object];
Вы также можете сделать то же самое для NSDictionaries, используя:
id object = dict[@"key"]; // equivalent to [dict objectForKey:@"key"];
mutableDict[@"key"] = object; // equivalent to [mutableDict setObject:object forKey:@"key"];
Еще круче, теперь вы можете создавать объекты массива и словаря, используя JSON-подобный синтаксис:
NSArray *array = @[@"value1", @"value2"]; // equivalent to [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dict = @{@"key1":@"value1", @"key2":@"value2"}; // equivalent to [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
Аналогичным образом, значения в штучной упаковке, такие как NSNumber, теперь можно записать в сокращенном синтаксисе:
NSNumber *intNumber = @5; // equivalent to [NSNumber numberWithInteger:5];
NSNumber *boolNumber = @YES; // equivalent to [NSNumber numberWithBool:YES];
NSNumber *someNumber = @(variable); // equivalent to [NSNumber numberWithWhatever:variable];
EDIT:
Гораздо более подробный ответ, чем мой, здесь: Каковы подробности "Objective-C Literals", упомянутые в примечаниях к выпуску Xcode 4.4?
РЕДАКТИРОВАТЬ 2:
Для ясности, хотя эта функция не была добавлена до Xcode 4.5, она работает на iOS 4.3 и выше, поэтому вам не нужно избегать ее использования, если вам требуется поддержка более старых версий iOS.
РЕДАКТИРОВАТЬ 3:
Ради педантичной точности он работает на компиляторе Apple LLVM версии 4.1 и выше. AKA версия, которая поставляется с Xcode 4.5.