Čo je efektívnejšie?
- Použitie predikátu s „IN“ ako [NSPredicate predicateWithFormat: @ „myObjectId v% @“, neededIds];
- Vytvára sa veľa predikátov pre každé ID([NSPredicate predicateWithFormat: @ "myObjectId == neededIds [i]"])) a potom pomocou týchto predikátov vytvoriť zložený predikát ako [NSPredicate orPredicateWithSubpredicates: perIdPredicates]?
Uprednostnil by som prvý prípad, pretože sa mi zdá oveľa čistejší, menej kódu, ale môj kolega trvá na tom, že druhý prípad so zloženým predikátom je efektívnejší (ale nikdy som o ňom vo WWDCs nepočul).
odpovede:
0 pre odpoveď č. 1Túto otázku kladiem aj na fórach Apple a tuto, čo mám: pravdepodobne používam „IN“ je vo väčšine prípadov výhodnejšie (ako som čakal), pretože optimalizátor požiadaviek má menej práce. Ale pre istotu by som to mal skontrolovať pomocou protokolov a nástrojov CoreData.
https://devforums.apple.com/message/1125377#1125377