我对Objective-C很新,从C ++转换,请原谅我的愚蠢问题。
我知道NSLogs
并且NSLog(@"%d is the index",i);
不是有效语法。这是什么原因:return [UIImage imageNamed:@"cover_%d.jpg", value];
不是?
我的IDE中出现错误,告诉我有太多参数,即整数从未被使用过。如何在非日志情况下反映整数?
答案 0 :(得分:7)
[UIImage imageNamed:[NSString stringWithFormat:@"cover_%d.jpg", value]];
字符串文字语法不支持格式。
答案 1 :(得分:2)
%d(等)语法是特定函数(如NSLog)使用的特定约定,它不是一个通用的Objective-C操作,您可以期望使用任意方法调用。
幸运的是,另一种支持%-subsitutions的方法是NSSTRing -stringWithFormat:
。您可以使用该方法使用替换创建字符串,然后根据需要使用该字符串。例如:
NSString *imgName = [NSString stringWithFormat:@"cover_%d.jpg", value];
return [UIImage imageNamed:imgName];
(您也可以将这两行合并为一个表达式,从而消除临时的imgName变量)