2011-07-24 33 views
17

为了在Core Data中使用,我尝试构建NSPredicate对象。 minLengthmaxLengthint类型:EXC_BAD_ACCESS尝试使用%@构建字符串时出现int 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]; 

缺少什么我在这里?

回答

49

%@format specifier的对象。一个int不是一个对象。有符号整数的格式说明符是%d%i

+0

当然!谢谢;) – Norbert

+0

@Norbert欢迎:) – albertamg

+1

如果你由于某种原因需要把它们当作对象,你可以看看NSNumber。 – Monolo

5

格式为int时,不应使用%@,但应使用%i%@是为了对象。