2012-08-13 71 views
1

在我的應用程序中,我使用NSPredicate來過濾填充了來自iPhone地址簿的數據的數組。在創建謂詞時獲取SIGABRT

對於每個人的陣中,我得到firstNamelastNameemailnickName, 然後我篩選基於搜索字符串數組,

創建爲searchString謂詞,但由於某種原因,我無法弄清楚,我的應用崩潰了。

我是Predicates的新手,無法弄清楚,我錯在哪裏,我的代碼與'contains'而不是'startswith'一起工作正常嗎?

這裏是代碼片段其崩潰我的應用程序,

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat: 
              @"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)", 
              searchTextComponent,searchTextComponent,searchTextComponent]; 

回答

0

你有4個 「%@」,只有3個參數。

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat: 
              @"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)", 
              searchTextComponent,searchTextComponent,searchTextComponent, SEARCHTEXTCOMPONENT ONE MORE TIME]; 
+0

謝謝,我有多愚蠢,順便說一句,我需要把這些字符串,因爲我檢查開始,在signle引號? like:'%@' – 2012-08-13 10:02:01

+0

它不再崩潰,但我過濾的數組即將出現與零元素。 – 2012-08-13 10:03:50

+0

反正,得到了我的問題排序,感謝trhe最初的幫助,但。 – 2012-08-13 10:13:20