EXC_BAD_ACCESS при попытке построить строку, используя% @ для int - PullRequest
17 голосов
/ 24 июля 2011

Для использования в Core Data я попытался построить объект NSPredicate. minLength и maxLength относятся к типу int:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length >= %@ AND length <= %@",
                          minLength, maxLength];

Программа вылетает здесь с EXC_BAD_ACCESS. Это не тот случай, если я использую %d вместо %@:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length >= %d AND length <= %d",
                          minLength, maxLength];

Что мне здесь не хватает?

Ответы [ 2 ]

49 голосов
/ 24 июля 2011

%@ - это спецификатор формата для объектов. int не является объектом. Спецификатор формата для целых чисел со знаком: %d или %i.

5 голосов
/ 24 июля 2011

В формате для int не следует использовать %@, но %i%@ для объектов`.

...