我刚从c++过渡到Objective-C,所以请原谅我愚蠢的问题。
我知道NSLogs
和什么不是NSLog(@"%d is the index",i);
是有效的语法。这是什么原因:return [UIImage imageNamed:@"cover_%d.jpg", value];
不是?
我得到一个错误在我的IDE告诉我,我有太多的参数,即整数从未被使用。如何在非对数情况下得到整数?
[UIImage imageNamed:[NSString stringWithFormat:@"cover_%d.jpg", value]];
字符串文本语法不支持格式
%d(等)语法是特定函数(如NSLog)使用的特定约定,它不是一个通用的Objective-C操作,您可以期望与任意方法调用一起工作。
幸运的是,另一个支持%-替换的方法是NSSTRing -stringWithFormat:
。您可以使用该方法使用替换创建字符串,然后根据需要使用该字符串。例如:
NSString *imgName = [NSString stringWithFormat:@"cover_%d.jpg", value];
return [UIImage imageNamed:imgName];
(也可以将这两行合并成一个表达式,去掉临时的imgName变量)