使用 NSUserDefaults 时格式字符串未使用 Objective-C iOS 10 数据参数
Posted
技术标签:
【中文标题】使用 NSUserDefaults 时格式字符串未使用 Objective-C iOS 10 数据参数【英文标题】:Objective-C iOS 10 Data argument not used by format string when using NSUserDefaults 【发布时间】:2016-12-19 12:38:45 【问题描述】:当我想将它转换为 Xcode 8 时,我有适用于 ios 8 的工作代码给我该行警告
格式字符串未使用数据参数
我的代码清楚为什么给出这个警告?
NSString *name1 =[[NSUserDefaults standardUserDefaults] stringForKey:@"name1"];
NSString *name2 =[[NSUserDefaults standardUserDefaults] stringForKey:@"name2"];
username = [NSString stringWithFormat:@"%@%@", @"", name1,name2];
哪里会出错?
【问题讨论】:
%@%@
=> 两个参数,@""
计为一,name1
计为一,name2
计为一。所以它在等待 2 个参数,然后你放了 3 个。
【参考方案1】:
您传递 3 个参数而不是 2 个参数的问题,错误或不小心添加了 @""
作为第一个格式说明符,所以这里 name2
是格式说明符的额外参数,这就是您收到此警告的原因。
应该是:
username = [NSString stringWithFormat:@"%@%@", name1,name2];
代替
username = [NSString stringWithFormat:@"%@%@", @"", name1,name2];
【讨论】:
@SwiftDeveloper 欢迎朋友 :)以上是关于使用 NSUserDefaults 时格式字符串未使用 Objective-C iOS 10 数据参数的主要内容,如果未能解决你的问题,请参考以下文章
XCTest:在 UI 测试类的 NSUserdefaults 中未检索到值
对于项目中未使用的 NSUserDefaults 键,对象不能为 nil
XCTest:UI测试类中的NSUserdefaults中未检索到的值
UIPickerView 不会显示从 NSUserDefaults 加载的数据 - 加载数据时应用程序崩溃