Question: I have this line in Objective-C.

```
NSMutableArray *mutableArray;
[mutableArray addObject:@{ @"Something" : aObject, @"Otherthing" : anotherObject }];

```

What does the `@{ ... }` part do exactly? It is an object, but it seems to create some kind of key, value pair on the fly.

Answer: 
These are called Literals. Apple LLVM Compiler 4.0 and above can use this.

In your question, the expression creates a dictionary

```
NSDictionary *settings = @{ AVEncoderAudioQualityKey : @(AVAudioQualityMax) };

```

Similarly arrays which were created using `NSArray arrayWithArray` and other similar methods, can now be done easily 

```
NSArray *array = @[ @"Hello", @"World"]; 

```

and you will not even need the `nil` sentinel.

More details here: <http://clang.llvm.org/docs/ObjectiveCLiterals.html>
The @{ ... } syntax is a shorthand way of creating a NSDictionary introduced as part of Modern Objective-C. The syntax `@{@"key1": object1, @"key2": object2}` is just a shorthand for more verbose methods like `[NSDictionary dictionaryWithObjectsAndKeys:]` among a few others.