在核心数据中,您可以将关系设置为可选,但您可以将其设置为最小检查或不检查...检查下面的图像以了解差异。我想我注意到的是,当您使用诸如 : 之类的谓词搜索对象时@"object != %@", objectToSearchFor
,第一个设置返回 nil,但第二个设置不返回。我可能会误会,但有人知道这两种设置之间的区别吗?
Ps 我不知道这是否重要,但我使用 SQLite 作为数据库引擎。
在核心数据中,您可以将关系设置为可选,但您可以将其设置为最小检查或不检查...检查下面的图像以了解差异。我想我注意到的是,当您使用诸如 : 之类的谓词搜索对象时@"object != %@", objectToSearchFor
,第一个设置返回 nil,但第二个设置不返回。我可能会误会,但有人知道这两种设置之间的区别吗?
Ps 我不知道这是否重要,但我使用 SQLite 作为数据库引擎。
NSRelationshipDescription 类参考中有一些关于此的文档:
基数
关系的最大和最小计数表示引用的对象数(1 表示一对一关系,-1 表示未定义)。仅当包含对象中的关系值不为零时才强制执行计数。也就是说,如果关系值是可选的,则关系中可能有零个对象,这可能小于最小计数。
例如,在可选的多对多关系的情况下:关系的值必须是nil
,或者至少包含所需对象的最小数量。
在可选的一对一关系的情况下,关系值要么是nil
要么指向另一个对象,所以我想不出最小计数是 0 还是 1 会有所不同的情况。
保存托管对象上下文时会检查所有约束,例如最小和最大计数等。