核心数据:通过特定属性获取(连接关系)

2024-02-28

我有一个核心数据模型如下

The attributes的财产Page是一组DictionaryEntry,它们是我的 Page 对象的值,很像标准NSDictionary(除了所有的keys and values是字符串)

我有一个Page有一个DictionaryEntry with key="title" and value="Home"。我如何形成一个获取请求来加载该特定页面?


您应该查看子查询的谓词语法。您不能使用通常的 ANY 关键字,因为这仅允许您匹配一列,而不是同时匹配两列。

  NSString *keyValue = @"title";
  NSString *valueValue = @"home";

  NSFetchRequest *request = [[NSFetchRequest alloc] init];
  [request setEntity:[NSEntityDescription entityForName:@"Page" inManagedObjectContext:_context]];
  [request setPredicate:[NSPredicate predicateWithFormat:@"(SUBQUERY(attributes, $a, $a.key == %@ && $a.value == %@).@count != 0)", keyValue, valueValue]];

更简单的谓词ANY attributes.key = "title" AND ANY attributes.value = "home"不起作用,因为它还返回具有两个字典的页面,例如key='addr'/value='home' 和 key='title'/value='pete'。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

核心数据:通过特定属性获取(连接关系) 的相关文章

随机推荐