I've been trying to implement CFNumber and having trouble with CFNumberCreate() (it takes 3 values, a CFAllocator, a CFNumberType and a void *). Since Apple says CFNumber is simply a NSNumber in disguise I decided to use that class, however, when I send a -initWithBytes:objCType: to an allocated NSNumber it I get an exception. Shouldn't this method return with the correct concrete class for the specified objCType? Right now all I get is an exception. For testing purposes I've using NSValue.