我有一个输入NSString
,我希望最后输出%
我尝试执行以下操作,但失败了
NSLog([NSString stringWithFormat:@"%@%%", self.tName.text ] );
其中tName是UITextfield
问题出在控制台,如果我输入A,输出将是A
而不是A%
有什么建议可以解决这个问题吗?
答案 0 :(得分:3)
您没有正确使用NSLog()
。 NSLog()
意味着使用常量格式字符串(例如%@%%
)调用,并在参数中传递。你正在做的是事先解析这些参数,然后将你想要打印的字符串传递给NSLog()
,这是行不通的。
当您编写[NSString stringWithFormat:@"%@%%", @"Hello!"]
时,您获得的字符串为@"Hello!%"
,这是您要打印的内容。但是,当你将它传递给NSLog()
时,它认为这是它需要解析的格式字符串,看到单个百分号并且不知道该做什么(它希望在百分号后得到一些东西),所以它忽略了它。基本上,你正在做的是:
NSLog(@"Hello!%");
尝试一下,你会发现它不起作用。使用正确的NSLog()
电话可以解决您的问题:
NSLog(@"%@%%", self.tName.text);
阅读NSLog()
及其变量对应的NSLogv()
here。
答案 1 :(得分:0)
我不确定您的问题是什么,但根据String Programming Guide的字符串格式说明符部分,只使用%%
将输出百分号。
答案 2 :(得分:0)
我刚刚测试了你的案例如下:
NSString *s = @"100";
NSLog(@"%@%%",s);
输出为:100%
试试这会有所作为吗?
NSLog(@"%@%%",self.tName.text);