有人可以解释这种行为以及如何解决这个问题吗?我无法找到任何相关内容。
// everything is fine
var test1 = "String without percentage";
NSLog(test1);
// fine
var test2 = "String with percentage %";
NSLog(test2);
// fine
var test3 = "test@test.nl";
NSLog(test3);
// still fine
var test4 = "%";
NSLog(test4);
var test5 = "test%40test.nl";
NSLog(test5); // error: EXC_BAD_ACCESS (code=1, address=0x0)
我实际上可以在调试窗口中看到并打印字符串,但是当我尝试在代码中使用变量时,我一直收到错误。
test5 String "test%40test.nl"
答案 0 :(得分:1)
NSLog
使用%作为字符串插值字符(àlaprintf)。如果要打印百分号,则需要使用%%引用它。
NSLog(@"Here's a percent sign: %%");
它崩溃的原因是(我认为)它期望%t(ptrdiff_t)的字段宽度为40.你没有传递额外的参数,因此EXC_BAD_ACCESS
。
答案 1 :(得分:0)
要打印%
,您需要:"%%"
var test5 = "test%%40test.nl";
NSLog(test5);