如何解决警告:格式不是字符串文字,也没有格式参数
| 有人可以帮助我了解以下代码行返回的原因: 警告:格式不是字符串文字,也没有格式参数qFileTxtName = @\"110327\";
aString = [@\"xxxx_\" stringByAppendingString:qFileTxtName];
我想要获得的输出是:
xxxx_110327
解决方法
尝试:
NSString *aString = @\"xxxx_\";
aString = [aString stringByAppendingString:qFileTextName];
, 假设qFileTxtName
和aString
都定义为NSString*
,那么您提供的代码不会产生任何警告。
NSString *qFileTxtName = @\"110327\";
NSString *aString = [@\"xxxx_\" stringByAppendingString:qFileTxtName];
// no warnings
我认为您打算写-stringByAppendingFormat:
,这会产生警告:
NSString *qFileTxtName = @\"110327\";
NSString *aString = [@\"xxxx_\" stringByAppendingFormat:qFileTxtName];
// warning: format not a string literal and no format arguments
如果您确实想使用-stringByAppendingFormat:
,则需要执行以下操作:
NSString *aString = [@\"xxxx_\" stringByAppendingFormat:@\"%@\",qFileTxtName];
以下日志调用显示了另一个操作,该操作将导致编译器发出该警告,以及一种更好(更安全)的编码方式:
NSLog(aString); // warning: format not a string literal and no format arguments
NSLog(@\"%@\",aString); // the more secure way to do it
, 假设您尚未在其他地方声明它们,请尝试
NSString *qFileTxtName = @\"110327\";
NSString *aString = [@\"xxxx_\" stringByAppendingString:qFileTxtName];
, 这是格式化程序的问题。在更新版本的ios sdk中,为此引入了一种新方法。因此,请使用stringWithString而不是stringWithFormat。如下。
NSMutableArray * array_mutable = [NSMutableArray arrayWithObject:@\"tekst\"];
NSString *s1;
s1 = [NSString stringWithFormat:[myArray objectAtIndex:0]]; //(Format string is not a string literal (potentially insecure)
s1 = [NSString stringWithString:[myArray objectAtIndex:0]]; //no problem
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。