NSLog(@"here is date string %@", dateString);
NSLog(@"here is file name %@", [NSString stringWithFormat: @"%@.%@.%@.%d.MOV", self.latitude, self.longitude, dateString, rand_int ]);
结果
2015-08-28 13:57:55.378 video[709:261408] here is date string 2015-08-28
2015-08-28 13:57:55.379 video[709:261408] here is file name 40.747062.-73.915204.@.363582320.MOV
似乎连续3 %@'s
应该是lat, lon, and dateString
,而是最后.%@.
似乎在打印输出中变成普通的旧@
。我错过了什么?
答案 0 :(得分:4)
你的第三个和@之间的格式字符串中有一个gremlin(控制字符)。您可以通过将插入点放在@和退格后两次,然后重新输入@来修复它。
如果您在进行我描述的更改之前在TextMate中打开文件,您将看到额外的字符:
(OS X的编译器显示了对此gremlin的警告,但它并不完全有用。)
答案 1 :(得分:4)
我复制并粘贴了您的代码 - 这是我在调试器中看到的:
[NSString stringWithFormat: @"%@.%@.%<U+0013>@.%d.MOV"]
所以你的格式字符串中显然有一些无打印字符。