int到NSString问题

时间:2011-01-29 14:14:44

标签: iphone objective-c nsstring

我使用以下语句进入NSString转换(使用find / replace)

curr_rep_date = [tmpRptDt stringByReplacingOccurrencesOfString:tmpYrVal withString:[NSString stringWithFormat:(tmpCurrYearInt-1)]];

我宣布了

int tmpYrVal;
NSMutableString *tmp_dt,*curr_rep_date;

但该程序似乎崩溃了,调试器没有提供任何提示。

有人可以帮我解决这个问题以及正确的用法。

4 个答案:

答案 0 :(得分:1)

您调用了stringWithFormat - 没有格式字符串的Method。 [NSString stringWithFormat:@“%i”,(tmpCurrYearInt-1)]应该可以解决您的问题。

答案 1 :(得分:1)

这里有很多问题。

首先,sringByReplacingOcurrancesOfString:withString:期待NSString s作为参数,而不是int s。这就是崩溃的原因。方法尝试将消息发送到基本类型,而不是对象。

其次,您需要为stringWithFormat:方法使用正确的格式字符串。这与NSLog的工作方式相同。

格式字符串看起来像@"some text %d"。然后将使用逗号分隔的值列表来代替%占位符。

示例:

[NSString stringWithFormat:@"%d", myIntValue];

将有效地将您的int转换为字符串,因为它使用您的int创建一个带有格式的新字符串。

答案 2 :(得分:0)

您缺少格式


curr_rep_date = [tmpRptDt stringByReplacingOccurrencesOfString:tmpYrVal withString:[NSString stringWithFormat:@"%d", (tmpCurrYearInt-1)]];

答案 3 :(得分:0)

NSString转换的基本int的工作方式如下:

NSString* s = [NSString stringWithFormat:@"%d", intNumber];