返回Obj-C字符串中的整数值



我刚从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变量)

最新更新