簡體   English   中英

核心數據中一對多關系的正確NSPredicate格式

[英]The correct NSPredicate format for one-to-many relationship in Core Data

我有一個具有一對多關系的托管對象模型A和B。

對於此特定任務,我想檢索所有與B有關系且屬性與“字符串”匹配的A對象。

我嘗試了@"ALL bObjects.bProperty MATCHES 'string'" ,它導致了objc_exception_throw的出現:

[NSSQLGenerator generateSQLStatementForFetchRequest:ignoreInheritance:countOnly:]

似乎是什么問題?

有人可以建議我正確的謂詞格式嗎?

根據《 謂詞編程指南》 ,從Core Data SQL存儲中獲取數據時,不能使用MATCHES運算符。

matches運算符使用regex ,因此Core Data的SQL存儲不支持regex盡管它確實適用於內存過濾。

至於謂詞的其余部分,當前僅返回A對象,其中整個bObjects集具有與輸入字符串匹配的bProperty

如果要返回的任何A對象在bObjects集中具有bObjects匹配的任何對象,則需要使用ANY運算符。

ANY bObjects.bProperty LIKE[cd] 'string'

感謝您指出這些局限性,就像我想相信的文檔一樣,我嘗試了針對SQLite獲取請求的MATCHES,它確實起作用,盡管出於安全考慮,我將其更改為LIKE。

唯一不起作用的是,如果我在使用SQLite存儲的Core Data上使用此謂詞,並且對相關對象(在這種情況下為多個)進行獲取請求,則不使用匹配項。

現在,我沒有使用基於關系的獲取查詢,這太冒險了,我仍然不知道出了什么問題,我已經將其發布在devforums.apple.com上,盡管沒有人回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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