使用 NSLog 进行调试
我的 Xcode 中有以下代码片段:
NSString *digit [[sender titlelabel] text];
NSLog([digit]);
我尝试构建应用程序,但收到以下行 NSLog([digit]);
的警告消息
Warning: Format not a string literal and no format arguments
您能告诉我如何解决此警告吗信息?该消息的实际含义是什么?
I have the following code snippet in my Xcode:
NSString *digit [[sender titlelabel] text];
NSLog([digit]);
I tried to build the application and am getting the following warning message for the line NSLog([digit]);
Warning: Format not a string literal and no format arguments
Can you advise me how I can resolve this warning message? What does the message actually mean?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
尝试这段代码:
该消息意味着您使用
digit
变量的语法不正确。如果您不向其发送任何消息 - 您不需要任何括号。Try this piece of code:
The message means that you have incorrect syntax for using the
digit
variable. If you're not sending it any message - you don't need any brackets.像这样使用
NSLog()
:或者像这样 - 带占位符:
在
NSLog()
中,您可以像+ (id)stringWithFormat:(NSString *) 一样使用它format, ...
您也可以添加其他占位符:
Use
NSLog()
like this:Or like this - with placeholders:
In
NSLog()
you can use it like+ (id)stringWithFormat:(NSString *)format, ...
You can add other placeholders, too:
为什么
数字
两边有括号?它应该是
NSLog("%@", digital);
您在第一行中还缺少
=
...NSString *digit = [[发件人标题标签]文本];
Why do you have the brackets around
digit
?It should be
NSLog("%@", digit);
You're also missing an
=
in the first line...NSString *digit = [[sender titlelabel] text];
正如警告试图解释的那样,使用 NSLog 的正确方法是使用格式化程序,而不是传递文字:
而不是:
使用:
它仍然可以按照第一种方式工作,但这样做会摆脱的警告。
The proper way of using NSLog, as the warning tries to explain, is the use of a formatter, instead of passing in a literal:
Instead of:
Use:
It will still work doing that first way, but doing it this way will get rid of the warning.
控制台显示什么?
what is shown in console?
类型:BOOL
DATA (YES/NO) OR(1/0)
OR
输出:NO
类型:长
整型 输出:显示长整型:2015
输出:显示非常长整型:20152015
类型:字符串
输出:显示字符串:a 字符串
类型:浮点型
输出: isplay 浮点:5.342450
类型:整数
输出:显示整数:3
输出:
字符串:字符串
显示浮点数:5.342450
显示整数:3
http://lutrr.blogspot.sg/2015/04/example-code-nslog-console-commands-to.html
type: BOOL
DATA (YES/NO) OR(1/0)
OR
OUTPUT: NO
type: Long
OUTPUT: Display Long: 2015
OUTPUT: Display very Long: 20152015
type: String
OUTPUT: Display String: a String
type: Float
OUTPUT: isplay Float: 5.342450
type: Integer
OUTPUT: Display Integer: 3
OUTPUT:
String: a String
Display Float: 5.342450
Display Integer: 3
http://luterr.blogspot.sg/2015/04/example-code-nslog-console-commands-to.html
由于您只需要打印“digit”的值,
您可以调用 -
或者
这两种方法都可以工作,但第二种方法是登录到控制台的正确方法。
Since you just need to print the value of 'digit'
Either you can call -
OR
Both the methods will work but the second one is the right way of logging to console.