CoreData中一个常见的操作就是获取数据(Fetching),NSFetchRequest自然是不二人选。
如果我们在请求数据时还要做一些过滤操作,那么断言(NSPredicate)此时就派上用处了。
不过,在创建CoreData请求使用的断言要小心,稍不留神就会出现“诡异”的查询结果。
下面,我们就来讨论一个使用断言的误区:貌似断言构造正确,但CoreData请求的结果总为空。
这是怎么回事呢?
让我们马上来看一下吧!
"貌似正确"的代码在如下代码中,我们根据不同条件,构造了一个供CoreData查询请求使用的断言:
struct FilteringTypes: OptionSet, Hashable { let