簡體   English   中英

NSPredicate沒有回應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM