One of the features of the modern (64 bit OS X and iPhone OS) Objective C runtime is the ability for properties to dynamically synthesize ivars without explicitly declaring
You add properties at run-time with the NSKeyValueCoding Protocol.
[myObject setValue:@"whatever" forKey:@"foo"];