Подтвердить что ты не робот

EXC_BAD_ACCESS при попытке построить строку с помощью% @для int

Для использования в 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];

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

4b9b3361

Ответ 1

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

Ответ 2

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