NSLogは、常にオブジェクトの説明を出力します。
実際、それはNS_FORMAT_FUNCTIONです。
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
それで:
NSString *stringForNSLog = [NSString stringWithFormat:@"%@",[testObject testString]];
*stringForNSLog
正確には「(null)」である必要があります。
ただし、testStringの値はnilです。
AppleのCocoaのオープンソース実装であるGNUStepを調べていると、次のようなものが見つかります。
すべての文字列形式のものはで書かれていますGSFormat.m
とでGSFormat.m
size_t len;
id obj;
NSString *dsc;
obj = args_value[specs[nspecs_done].data_arg].pa_object;
if (!obj) dsc = @"(null)";
else if ([obj respondsToSelector: @selector(descriptionWithLocale:)]) dsc = [obj descriptionWithLocale: locale];
else dsc = [obj description];
http://svn.gna.org/svn/gnustep/libs/base/trunk/Source/NSString.m
http://svn.gna.org/svn/gnustep/libs/base/trunk/Source/GSFormat.m