私はコアデータが基本的にSQLiteデータベースであることを知りました。各エンティティは別のテーブルです。エンティティではないテーブルもあります(Z_METADATA
、Z_MODELCACHE
、Z_PRIMARYKEY
など)。彼らが何をするのか分からない。NSManagedObjectの主キーの値を取得するにはどうすればよいですか?
とにかく、「エンティティテーブル」のフィールドは、データモデルで追加したプロパティといくつかの追加機能とほぼ同じであることがわかりました。たとえば、私のエンティティにdate
という1つのプロパティしかない場合などです。テーブルのフィールドは、ZDATE
フィールド、Z_PK
,Z_ENT
、およびZ_OPT
です。
明らかに、各エンティティにはZ_PK
フィールドに格納されている主キーがあります。私は特定のNSManagedObject
のこの主キーの価値を得たいです。特定のプライマリキーを持つNSManagedObject
のデータベースを照会したいとします。
だから基本的には、このような何か:
let pk = myManagedObject.primaryKey
// the below should return myManagedObject
managedObjContext.objectWithPrimaryKey(someEntityDescription, pk)
私はNSManagedObject
のためのドキュメントを検索し、objectID
を見ました。しかし、私はこれがそれだとは思わない、それとも?
私はあなたが主キーと言うときオブジェクトIDを参照していると信じています.. http://stackoverflow.com/questions/901640/core-data-primary-key –