gpt4 book ai didi

ios - 将NSPredicate应用于一对多关系将返回0值

转载 作者:行者123 更新时间:2023-12-01 19:03:54 24 4
gpt4 key购买 nike

假设与我的实体Store具有关系的实体Offer(Offer << ---- Store)

我想获取所有至少包含特定报价的商店。

所以我尝试了这个:

[NSPredicate predicateWithFormat:@"ANY offers.offerID == %@", _offer.offerID];

生成的SQL请求的日志:
details: SQLite bind[0] = "51dbc2b94eb8dd9a7d00000d"
2014-01-09 11:30:11.169 ****[39542:70b] CoreData: annotation: sql connection fetch time: 0.0011s
2014-01-09 11:30:11.170 ****[39542:70b] CoreData: annotation: fetch using NSSQLiteStatement <0xd50f3a0> on entity 'Store' with sql text 'SELECT DISTINCT t0.Z__AF_RESOURCEIDENTIFIER FROM ZSTORE t0 JOIN ZOFFER t1 ON t0.Z_PK = t1.Z7OFFERS WHERE t1.ZOFFERID = ? ORDER BY t0.ZORDERNUMBER LIMIT 24' returned 0 rows with values: (
)

但似乎不起作用。

但是,我确定商店包含我的报价,因为当我获取 所有商店(没有谓词)时,这是我得到的商店的日志:
<Store: 0x12149350> (entity: Store; id: 0xd6bb210 <x-coredata://135F3A30-4BC6-4428-8D19-8D3EEBBE8173-39447-0000BC0D17888C74/Store/p__af_5097ffad4eb8dd720d02211f> ; data: {
{…}
offers = (
"0x12145c20 <x-coredata://135F3A30-4BC6-4428-8D19-8D3EEBBE8173-39447-0000BC0D17888C74/Offer/p__af_offer_51dbc2b94eb8dd9a7d00000d>"
);
{…}
})

我不明白我在做什么错。

最佳答案

从报价到商店,您应该有相反的关系。然后,您可以通过offerID获取要约,并只需访问要约的store属性即可在代码中访问商店。

我怀疑这在数据库上比在谓词中使用ANY容易。

您甚至可以对此进行一些改进。如果您在获取商品时将商品之间的逆关系指定为要预先获取的关系,则在获取商品后访问offer.store时,将保存一次到数据库的旅行。

关于ios - 将NSPredicate应用于一对多关系将返回0值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com