任何人都可以解释为什么这段代码完美无缺:
int thumbnailPrefix = trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]);
newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",thumbnailPrefix,@"png"];
但是这段代码导致错误访问错误?
newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];
答案 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的返回类型。