iOS CoreData 关系:使用可选的或不使用最小值

Zen*_*uka 4 core-data relationship ios

在核心数据中,您可以将关系设置为可选,但您可以将其设置为最小检查或不检查...检查下面的图像以了解差异。什么我想我已经注意到的是,当你搜索使用像谓词的对象:@"object != %@", objectToSearchFor,第一设定收益为零的,但第二设置不。我可能会误会,但有人知道这两种设置之间的区别吗?

没有最小值的可选关系

与最小值的可选关系

Ps 我不知道这是否重要,但我使用 SQLite 作为数据库引擎。

Mar*_*n R 5

NSRelationshipDescription Class Reference 中有一些关于此的文档:

基数 关系
的最大和最小计数表示引用的对象数(1 表示一对一关系,-1 表示未定义)。仅当包含对象中的关系值不为零时才会强制执行计数。也就是说,如果关系值是可选的,则关系中可能有零个对象,这可能小于最小计数。

因此,例如,在可选对多关系的情况下:关系的值必须是nil,或者至少包含所需对象的最少数量。

在可选的一对一关系的情况下,关系值要么是nil要么指向另一个对象,所以我想不出最小计数是 0 还是 1 会产生影响的情况。

保存托管对象上下文时会检查所有约束,如最小和最大计数等。