任何人都可以解释为什么此代码可以完美运行:
int thumbnailPrefix = trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]);
newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",thumbnailPrefix,@"png"];
但是这段代码会导致访问错误吗?
newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];
最佳答案
trunc
返回double
,而不是int
。
double trunc(double x);
因此,在第一个代码块中,您正在将其转换为
int
,并正确使用%d
格式说明符。在第二个中,它应该是一个
%f
,或者在其前面。newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",(int)trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];