Objective-C iOS 10 使用 NSUserDefaults 时格式字符串未使用数据参数

Objective-C iOS 10 Data argument not used by format string when using NSUserDefaults

我有 iOS 8 的工作代码,当我想将它转换为 Xcode 8 时,我得到了警告行

Data argument not used by format string

我的代码清楚为什么给出这个警告?

 NSString *name1 =[[NSUserDefaults standardUserDefaults] stringForKey:@"name1"];
    NSString *name2 =[[NSUserDefaults standardUserDefaults] stringForKey:@"name2"];
    username  =  [NSString stringWithFormat:@"%@%@", @"", name1,name2];

哪里会出错?

问题是你传递了 3 个参数而不是 2 个,错误或不小心你添加了 @"" 作为第一个甲酸盐说明符,所以这里 name2 是格式说明符的额外参数,这就是原因您收到此警告。

应该是:

username  =  [NSString stringWithFormat:@"%@%@", name1,name2];

而不是

username  =  [NSString stringWithFormat:@"%@%@", @"", name1,name2];