2011-07-24 60 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%@是爲了對象。