尝试使用%@为int构建字符串时的EXC_BAD_ACCESS

时间:2011-07-24 12:13:19

标签: objective-c exc-bad-access

为了在Core Data中使用,我尝试构建一个NSPredicate对象。 minLengthmaxLength的类型为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 个答案:

答案 0 :(得分:49)

%@是对象的format specifierint不是对象。有符号整数的格式说明符为%d%i

答案 1 :(得分:5)

在int格式中,您不应使用%@,而应使用%i%@用于对象。