为了在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];
我在这里缺少什么?
答案 0 :(得分:49)
%@
是对象的format specifier。 int
不是对象。有符号整数的格式说明符为%d
或%i
。
答案 1 :(得分:5)
在int格式中,您不应使用%@
,而应使用%i
。 %@
用于对象。