NSValue is NOT a property list format - you can't write one to disk in NSUserDefaults, for example. Use the various NSStringFrom foundation functions to do this. (NSNumber, a subclass of NSValue, IS a property list format.)
What's the difference between these two creation methods?
+ (NSValue )value:(const void )value withObjCType:(const char )type;
+ (NSValue )valueWithBytes:(const void )value objCType:(const char )type;
The documentation for the two are nearly identical, save for the second that has this very odd line "This method is equivalent to value:withObjCType:, which is part of Cocoa. "
GNUstep docs say the second one is a " Synonym for value:withObjCType:." I dunno...
These functions are identical. In fact the first one calls the second one, which makes valueWithBytes perform better :-)