4

コアデータでは、関係をオプションに設定できますが、最小値をオンまたはオフに設定できます...違いについては、下の画像を確認してください。私が気づいたと思う@"object != %@", objectToSearchForのは、次のような述語を使用してオブジェクトを検索すると、最初の設定は nil を返しますが、2 番目の設定は返さないということです。私はそれについて誤解することができますが、誰かが2つの設定の違いを知っていますか?

最小値のないオプションの関係

任意の最小値との関係

Ps それが問題かどうかはわかりませんが、DB エンジンとして SQLite を使用しています。

4

1 に答える 1

5

NSRelationshipDescription Class Referenceには、これに関するドキュメントがいくつかあります。

カーディナリティ
リレーションシップの最大数と最小数は、参照されるオブジェクトの数を示します (1 対 1 のリレーションシップの場合は 1、-1 は未定義を意味します)。カウントは、含まれているオブジェクトの関係値が nil でない場合にのみ適用されます。つまり、リレーションシップの値がオプションである場合、リレーションシップにゼロのオブジェクトが存在する可能性があり、これは最小数よりも少ない可能性があります。

たとえば、オプションの対多リレーションシップの場合: リレーションシップの値は であるかnil、少なくとも必要なオブジェクトの最小数を含んでいる必要があります。

オプションの対一関係の場合、関係値はnil別のオブジェクトであるか、別のオブジェクトを指しているため、最小カウントが 0 か 1 かで違いが生じる状況は考えられません。

管理対象オブジェクトのコンテキストを保存するときに、最小数や最大数などのすべての制約がチェックされます。

于 2013-01-11T09:02:45.593 に答える