我使用以下语句进入NSString转换(使用find / replace)
curr_rep_date = [tmpRptDt stringByReplacingOccurrencesOfString:tmpYrVal withString:[NSString stringWithFormat:(tmpCurrYearInt-1)]];
我宣布了
int tmpYrVal;
NSMutableString *tmp_dt,*curr_rep_date;
但该程序似乎崩溃了,调试器没有提供任何提示。
有人可以帮我解决这个问题以及正确的用法。
答案 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];