On 2012-07-18, at 9:08 AM, William Squires <wsqui...@satx.rr.com> wrote:
> Okay, after reading some of the documentation on KVC coding, I understand (I > think) that the point is to allow me to specify a property of an object with > an NSString, then set/get that property value using KVC (i.e. valueForKey: or > setValue:forKey:). But it seems like the fact that there's no way to specify > (or grab) the value of the property in a generic-enough manner would be a > problem - anyone using it would still have to know the data type of the > property they want to access, and thus they might as well just use the > accessors. I can see this would work if ObjC had a generic data type (like > the 'variant' data type in VB/REALbasic), but AFAIK, ObjC doesn't have such, > and valueForKey: returns an id, right? > How can I determine what I get back? (i.e. what does the id pointer point > to? an NSString? an NSNumber? NSDecimalNumber? NSData? another NSObject > subclass?) id *is* ObjC's “variant” type. You can determine the type of the underlying data by first determining its class (e.g.: [obj isKindOfClass:[NSString class]]), and then going from there. Scalar or composite values are wrapped in the appropriate classes—e.g.: NSNumber for numeric values and NSValue for generic data. The whole system is really quite flexible, particularly when you consider that ObjC, unlike so many other languages, doesn't choke on Nil values. —Mt. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com