使用%@转换说明符和字段宽度时,Cocoa的printf样式格式是否无法正常工作?

Nik*_*uhe 6 cocoa printf string-formatting

我对类似printf的格式字符串的理解是你可以为任何转换说明符添加最小字段宽度的前缀.这对Cocoa的%@说明符似乎不起作用.例:

NSLog(@"'%5@'", @"foo");
NSLog(@"'%5s'", [@"foo" UTF8String]);
Run Code Online (Sandbox Code Playgroud)

输出:

… 'foo'
… '  foo'
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

Jes*_*and 1

%@ 仅适用于 Objective-C 对象。因此,如果对象不是 NSString,则字段宽度将无效。

我不知道 %5@ 的格式与 %@ 相同。

  • Cocoa 的格式化函数总是在对象上调用“descriptionWithLocale:”(或“description”)来获取字符串表示形式。该字符串表示形式可以填充到给定的字段宽度。 (5认同)