We use it in a lot of our code here. Its quite nice. You'll end up with something like:
myDict = $mdict(val, key, val2, key2);
#define KV(KEY,VALUE) VALUE, KEY myDict = MD(KV(key,val), KV(key2,val2));
Another option is implementing your own dictionaryWithObjectsAndKeys where you flip the varargs and feed them back into the subclass dictionaryWithObjectsAndKeys.
We use it in a lot of our code here. Its quite nice. You'll end up with something like:
myDict = $mdict(val, key, val2, key2);