debugging 使用NSLog进行调试

ruoxqz4g  于 2023-05-18  发布在  其他
关注(0)|答案(7)|浏览(202)

我在Xcode中有以下代码片段:

NSString *digit [[sender titlelabel] text];
NSLog([digit]);

我尝试构建应用程序,并收到以下NSLog([digit]);行的警告消息

Warning: Format not a string literal and no format arguments

您能告诉我如何解决此警告消息吗?这条信息实际上是什么意思?

cqoc49vn

cqoc49vn1#

NSLog([digit]); // [] are the messages in Objective-C, just like methods or functions in other programming languages

因为你只需要打印'digit'的值
你要么打电话-

NSLog(digit); // A warning would occur - Format string is not a string literal (potentially insecure)

NSLog(@"%@",digit]); // But if you use %@ to reference the object, the warning will go away.

这两种方法都可以工作,但第二种方法是登录到控制台的正确方法。

brgchamk

brgchamk2#

试试这段代码:

NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);

该消息意味着您使用digit变量的语法不正确。如果你不发送任何消息-你不需要任何括号。

1cklez4t

1cklez4t3#

使用NSLog()如下:

NSLog(@"The code runs through here!");

或者像这样-使用占位符:

float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);

NSLog()中,可以像+ (id)stringWithFormat:(NSString *)format, ...一样使用它

float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];

您也可以添加其他占位符:

float aFloat = 5.34245;
int aInteger = 3;
NSString *aString = @"A string";
NSLog(@"This is my float: %f \n\nAnd here is my integer: %i \n\nAnd finally my string: %@", aFloat, aInteger, aString);
fjaof16o

fjaof16o4#

为什么digit周围有括号?应该是的
NSLog("%@", digit);
第一行中还缺少一个=...
NSString *digit = [[sender titlelabel] text];

jtoj6r0c

jtoj6r0c5#

使用NSLog的正确方法,正如警告试图解释的那样,是使用格式化程序,而不是传入文字:
而不是:

NSString *digit = [[sender titlelabel] text];
NSLog(digit);

用途:

NSString *digit = [[sender titlelabel] text];
NSLog(@"%@",digit);

第一种方法仍然有效,但这样做会消除警告。

px9o7tmv

px9o7tmv6#

NSLog(@"%@", digit);

控制台上显示的是什么?

wlwcrazw

wlwcrazw7#

类型:BOOL
数据(是/否)或(1/0)

BOOL dtBool = 0;

BOOL dtBool = NO;
NSLog(dtBool ? @"Yes" : @"No");

输出:否
类型:长

long aLong = 2015;
NSLog(@"Display Long: %ld”, aLong);

输出:显示长:2015

long long veryLong = 20152015;
NSLog(@"Display very Long: %lld", veryLong);

输出:显示非常长:20152015
类型:字符串

NSString *aString = @"A string";
NSLog(@"Display string: %@", aString);

OUTPUT:显示字符串:a字符串
类型:浮动

float aFloat = 5.34245;
NSLog(@"Display Float: %F", aFloat);

OUTPUT:isplay Float:5.342450
类型:整数

int aInteger = 3;
NSLog(@"Display Integer: %i", aInteger);

OUTPUT:显示整数:3

NSLog(@"\nDisplay String: %@ \n\n Display Float: %f \n\n Display Integer: %i", aString, aFloat, aInteger);

OUTPUT:String:a字符串
显示浮动:5.342450
显示整数:3
http://luterr.blogspot.sg/2015/04/example-code-nslog-console-commands-to.html

相关问题