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: 
It is creating NSDictionary object as you said. Syntax is simple

```
NSDictionary* dictionary = @{key: object, key: object};

```

In your example, keys are objects of NSString class. It is important to remember that dictionary copies keys and retains values.
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>