什么更有效:一个带有" IN" -used格式的谓词或[NSPredicate orPredicateWithSubpredicates:]

时间:2015-03-31 18:24:49

标签: objective-c performance core-data code-readability

什么更有效?

  1. 使用带有" IN"的谓词比如[NSPredicate predicateWithFormat:@" myObjectId in%@",neededIds];
  2. 为每个id创建一串谓词,如([NSPredicate predicateWithFormat:@" myObjectId == neededIds [i]"])然后使用此谓词创建复合谓词,如[NSPredicate orPredicateWithSubpredicates:perIdPredicates] ?
  3. 我更喜欢第一种情况,因为它看起来更干净,代码更少,但是我的同事坚持认为第二种情况更复杂(但我从未在WWDC中听说过)。

1 个答案:

答案 0 :(得分:0)

我也在苹果论坛上问这个问题,在这里我得到了什么:在大多数情况下(正如我所料),使用'IN'更可取,因为请求优化器的工作量较少。但是要确保我应该使用CoreData日志和工具进行检查。

https://devforums.apple.com/message/1125377#1125377