iOS:警告消息 "Format specifies type 'int' but the argument has type 'char *(*)(const char *, int)'"
iOS: Warning message "Format specifies type 'int' but the argument has type 'char *(*)(const char *, int)'"
我在 2 日 NSLog
收到 %c
的错误消息:
for info, here is the type of 'index' char => *index(const char *, int) __POSIX_C_DEPRECATED(200112L);
我不明白我必须在这里放什么类型:
@try {
[[cellToFill valueForKey:@"_textField"] setAutocapitalizationType: [[color valueForKey:@"textField.autocapitalizationType"] integerValue]];
}
@catch (NSException *exception) {
NSLog(@"%@", exception.reason);
}
@finally {
NSLog(@"Char at index %c cannot be found", index);
}
在 NSLog 中放入什么类型可以避免该警告?
你的char *
不是一个字符而是一个指向字符串的指针,你可以试试把%c
改成%s
。
如果您使用标准 char
,您可以使用 %c
记录它。
您可能在 NSLog()
调用中输入了错误的标识符 index
。
你的代码表明你认为 index
是某处的字符变量(例如声明为 char index;
)。
错误消息指出 index
是 char *(*)(const char *, int)
类型,即: 一个指向接受字符指针和整数值的函数的指针,以及 returns一个字符指针.
现在正好有一个标准的 C 库函数 index()
正是这种类型。
结论:你把你的变量名打错了 index
,或者把它打错了,因此得到的是 C 库函数——如果你只是在 (Objective-)C 你得到一个指向函数的值,正如你的错误信息所描述的那样。
我在 2 日 NSLog
收到 %c
的错误消息:
for info, here is the type of 'index' char => *index(const char *, int) __POSIX_C_DEPRECATED(200112L);
我不明白我必须在这里放什么类型:
@try {
[[cellToFill valueForKey:@"_textField"] setAutocapitalizationType: [[color valueForKey:@"textField.autocapitalizationType"] integerValue]];
}
@catch (NSException *exception) {
NSLog(@"%@", exception.reason);
}
@finally {
NSLog(@"Char at index %c cannot be found", index);
}
在 NSLog 中放入什么类型可以避免该警告?
你的char *
不是一个字符而是一个指向字符串的指针,你可以试试把%c
改成%s
。
如果您使用标准 char
,您可以使用 %c
记录它。
您可能在 NSLog()
调用中输入了错误的标识符 index
。
你的代码表明你认为 index
是某处的字符变量(例如声明为 char index;
)。
错误消息指出 index
是 char *(*)(const char *, int)
类型,即: 一个指向接受字符指针和整数值的函数的指针,以及 returns一个字符指针.
现在正好有一个标准的 C 库函数 index()
正是这种类型。
结论:你把你的变量名打错了 index
,或者把它打错了,因此得到的是 C 库函数——如果你只是在 (Objective-)C 你得到一个指向函数的值,正如你的错误信息所描述的那样。