NSObjCValue
typedef struct { enum _NSObjCValueType type; union { char charValue; short shortValue; long longValue; long long longlongValue; float floatValue; double doubleValue; bool boolValue; SEL selectorValue; id objectValue; void *pointerValue; void *structLocation; char *cStringLocation; } value; } NSObjCValue;