objective-ccocoaclassnsstringclass-cluster

NSString instance reports its class as NSCFString


My objective here is really simple -- I'm trying to set an NSString to some test data, then return the class, which should be NSString. Here's my code:

NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);

The log says that the class is NSCFString, not NSString. What's going on here?


Solution

  • NSString is really a container class for different types of string objects. Generally an NSString constructor does return an object that is actually of type NSCFString, which is a thin wrapper around the Core Foundation CFString struct.