Я действительно пытаюсь понять их 3. Похоже, ANY
и SOME
делают то же самое, но я не вижу разницы с ALL
.Разница между операторами ALL, ANY и NOME в NSPredicate
ответ
Давайте список групп. Каждая группа имеет членов типа. У каждого человека есть возраст.
ALL members.age> 30
означает, что вы найдете группу с членами, которые все старше 30. Вы не найдете группу, по крайней мере, один отдельный член быть 30 или моложе.
ANY members.age> 30
означает, что вы найдете группу, по крайней мере, одного члена старше 30. Вы не найдете группу со всеми членами составляет 30 лет или моложе.
Group1 > 30
Amin 45 YES
Chris 29 NO
---
All NO (because Chris is too young)
Any YES (because Amin is old enough)
Group2 > 30
Amin 45 YES
Foo 35 YES
---
All YES (because all members are old enough)
Any YES (because at least one member is old enough)
Group3 > 30
Chris 29 NO
Bar 21 NO
---
All NO (because at least one member is too young)
Any NO (because all members are too young)
С предикатом ALL вы найдете Group2, потому что все члены (Amin, Foo) соответствуют предикату. С ЛЮБОЙ предикат вы найдете обе группы, потому что в обеих группах по крайней мере один член соответствует предикату.
ALL
и ANY
являются основными логическими операторами.
ALL predicate
оценивает на true, когда predicate
оценивает true для КАЖДЫЙ пункт.
ANY predicate
оценивает true, когда predicate
оценивает истину не менее чем за 1 позицию.
Обратите внимание, что вы всегда можете выразить ВСЕ предикат, используя ЛЮБОЙ и наоборот, например, ALL condition
эквивалентен NOT (ANY NOT(condition))
.
Вы можете найти более подробную информацию в Predicate Programming Guide, Глава Совокупные Операции
Посмотрите мои комментарии по поводу ответа Амина. Существуют некоторые ограничения при использовании предиката с запросом на выборку Core Data в хранилище SQLite. –
И больше, не упомянуто. Например, вы не можете использовать вычисленные свойства. (В принципе вы можете сказать: все, что не является простым SQL-запросом, не может быть выполнено.) Но это, безусловно, нет критериев, чтобы отличать ВСЕ от ЛЮБОГО, потому что эти ограничения применимы к обоим. –
- 1. Использование ALL/ANY/NONE в NSPredicate
- 2. Boost.Spirit: Разница между операторами «% =» и «=»
- 3. В чем разница между «(: any)» и «: any» в CodeIgniter?
- 4. Разница между + = и = + операторами в C++?
- 5. В чем разница между арифметическими операторами^и. ^?
- 6. Разница в рубинах между операторами
- 7. В чем разница между `mixed` и` any`?
- 8. Pandas Boolean .any() .all()
- 9. Есть ли разница между операторами «и» и «&&» в PHP?
- 10. разница между аналогичными побитовыми операторами
- 11. Разница между операторами equals (LINQ) и == (C#)?
- 12. Разница между операторами sql и статьей
- 13. Разница между <> и! = Операторами сравнения?
- 14. Разница между термальными операторами C и Python
- 15. Преимущества репозитория и разница между двумя операторами
- 16. Разница между некоторыми операторами «|», «^», «&», «& ^». Golang
- 17. Makefile: разница между: = и :: = операторами присваивания
- 18. NSPredicate с ANY в Realm
- 19. Pandas Series any() vs all()
- 20. Разница между операторами Golang между: = vs =
- 21. Встроенная функция all() и any() в Python
- 22. Разница между `--all` и` --ignore-removal`
- 23. В чем разница между операторами + = vs = +
- 24. В чем разница между операторами сопоставления шаблонов?
- 25. В чем разница между двумя операторами python?
- 26. SQL разница между> = All и MAX
- 27. В чем разница между двумя операторами sql?
- 28. NSPredicate с ANY и «= ноль» не работает
- 29. Разница между операторами присваивания в automake
- 30. NSPredicate ANY с несколькими столбцами
Обратите внимание, что если вы используете этот предикат в выборке Core Data для типа хранилища SQLite, существуют важные ограничения. Прочтите весь раздел Fetch Predicates и Sort Descriptors в Руководстве по программированию основных данных: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdPersistentStores.html#//apple_ref/doc/ UID/TP40002875-SW11 –