是否可以使用格式字符串来对齐NSStrings,就像数字一样?

wil*_*lc2 13 objective-c format-string

我正在使用NSLog()打印一些由NSString和相关整数组成的表格数据.

假设我知道最长单词的长度.

有没有办法使用格式字符串来获得这种列对齐:

word:tree        rank:5  
word:frog        rank:3  
word:house       rank:2  
word:peppercorn  rank:2  
word:sword       rank:2  
word:antlion     rank:1  
Run Code Online (Sandbox Code Playgroud)

我之所以要问格式化字符串是因为我希望能够以轻量级方式格式化我的ghetto调试输出.

这是我尝试过的:

NSString *word = @"tree";
NSUInteger rank = 4;
NSString *str = [NSString stringWithFormat:@"word:%-20@ rank:%u", word, rank];
NSLog(@"%@", str);
Run Code Online (Sandbox Code Playgroud)

结果:

字:树等级:4

完全没有效果.

Ant*_*amp 17

以下似乎可行,但需要从NSString转换为C字符串.

NSString *word = @"tree";
NSUInteger rank = 4;
NSString *str = [NSString stringWithFormat:@"word:%-20s rank:%u", [word UTF8String], rank];
NSLog(@"%@", str);
Run Code Online (Sandbox Code Playgroud)

不知道为什么在尝试使用NSString时会忽略字段宽度.