[英]NSPredicate not responding
我正在使用Stanford的UICoreDataTableViewController
來對數據庫進行提取。
在我的主視圖中,用戶在searchBar上輸入一個浮點數並通過點擊搜索,謂詞使得它只獲取最大值和最小值之間的值(即浮點數在3到10之間)。
在主視圖中,我構建了一個包含實體的字符串,一個包含必須執行搜索的屬性的字符串,最后是一個包含謂詞的數組(大於x且小於y)。 我在prepareForSegue
上傳遞字符串和數組。 它工作得很好。
如果他/她沒有輸入任何數字,我希望用戶能夠看到所有的vaules。 所以在prepareForSegue
我添加了一個根據NSLog正確調用的條件。
問題是,在屬性上,一些值只是零(我已經確定了)。 如果是prepareForeSegue
我傳遞以下謂詞數組:
prepredicateArrayToPass=[NSArray arrayWithObject:[NSPredicate predicateWithFormat:@"%@ !=nil", attributeToPass]];
獲取完成后將nil值解釋為0並因此被顯示。 不好。
但是,如果我復制謂詞並將其直接粘貼到setupFetchedResultsController
上的setupFetchedResultsController
方法上, UICoreDataTableViewController
它可以正常工作並且不會顯示nil值。
如果我直接在UICoredataTableViewController
上添加條件,它也不起作用。
我真的不知道如何進一步發展。 任何幫助將非常感激。
謝謝。
所以,我在發布問題的幾分鍾內就找到了答案。
問題是謂詞字符串上的簡單語法。 而不是使用%@來指定屬性,它應該是%K。 一切都在文檔中解釋。
所以,謂詞數組應該是:
prepredicateArrayToPass=[NSArray arrayWithObject:[NSPredicate predicateWithFormat:@"%K !=nil", attributeToPass]];
現在充當魅力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.