stringWithFormat Bad Access错误

时间:2011-08-22 16:19:43

标签: objective-c ios exc-bad-access stringwithformat

任何人都可以解释为什么这段代码完美无缺:

int thumbnailPrefix = trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]);

newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",thumbnailPrefix,@"png"];

但是这段代码导致错误访问错误?

newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];

2 个答案:

答案 0 :(得分:2)

trunc返回double,而不是int

double trunc(double x);

因此,在第一个代码块中,您将其转换为int,并正确使用%d格式说明符。

在第二个中,它应该是%f,或者前面有(int)

newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",(int)trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];

答案 1 :(得分:0)

您是否尝试过类型转换来自trunk()的返回,如....

newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",(int)trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];

这是一个黑暗的镜头,但我希望NSString不知道函数trunc的返回类型。