stringWithFormat Ошибка неверного доступа - PullRequest
0 голосов
/ 22 августа 2011

Может кто-нибудь объяснить, почему этот код работает отлично:

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

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

Но этот код вызывает ошибку Bad Access?

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

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

trunc возвращает double, а не int.

double trunc(double x);

Таким образом, в первом блоке кода вы конвертируете его в int и правильно используете %dспецификатор формата.

Во втором это должен быть %f или (int) перед ним.

newGraph.thumbnailImageName = [NSString stringWithFormat:@"%d.%@",(int)trunc([newGraph.dateCreated timeIntervalSinceReferenceDate]),@"png"];
0 голосов
/ 22 августа 2011

Вы пробовали типизировать возврат из trunk () как ....

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

Это выстрел в темноте, но я ожидаю, что NSString не знает тип возвращаемого значения для функции trunc.

...