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

时间:2011-07-25 03:43:36

标签: objective-c xcode integer

我对Objective-C很新,从C ++转换,请原谅我的愚蠢问题。

我知道NSLogs并且NSLog(@"%d is the index",i);不是有效语法。这是什么原因:return [UIImage imageNamed:@"cover_%d.jpg", value];不是?

我的IDE中出现错误,告诉我有太多参数,即整数从未被使用过。如何在非日志情况下反映整数?

2 个答案:

答案 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变量)