Com o LLVM 4.0, Collection Literals foram introduzidos, permitindo-nos criar um NSDictionary usando a sintaxe literal:
NSDictionary* dict = @{@"key1" : obj1, @"key2" : obj2};
Se você concordar em fazer com que as chaves correspondam ao nome do objeto:
NSDictionary* dict = @{@"stringA" : stringA, @"object2" : object2};
então, há uma maneira ainda mais rápida de criar um NSDictionary: a macro NSDictionaryOfVariableBindings.
NSDictionary* dict = NSDictionaryOfVariableBindings(stringA, object2);
Agora basta acessar seus objetos usando os nomes das variáveis como as chaves:
NSString* str = [dict objectForKey:@"stringA"];
O NSDictionaryOfVariableBindings é uma macro definida em NSLayoutConstraints.h e geralmente é usado no processo de criação de restrições de AutoLayout de forma programática, MAS, isso não significa que você não pode se beneficiar de usá-lo em outros cenários.
Verifique a documentação do CLANG 3.5 para obter informações sobre a sintaxe dos literais: http://clang.llvm.org/docs/ObjectiveCLiterals.html
e a seção “Criando restrições programaticamente” do “Guia de layout automático” da documentação do desenvolvedor da Apple para obter mais informações sobre a criação de restrições de layout automático programaticamente:
https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AutolayoutPG /AutoLayoutinCode/AutoLayoutinCode.html#//apple_ref/doc/uid/TP40010853-CH11-SW1