Core Data での一時的なプロパティの設定に問題があります。私が解決しようとしている問題は次のとおりです。Core Data を使用して正常に格納されたオブジェクトのコレクションがあります。このコレクションは基本的に読み取り専用のコレクションですが、実行時に別のオブジェクト (この場合は UIImage) をコレクション内の各アイテムに関連付けたいと考えています。UIImages を保存する必要はありません。これは純粋に実行時の関連付けです。したがって、私が本当に必要としているのは、後で UIImage をドロップできるコレクション内の各オブジェクトの「プレースホルダー」です。
一時的な属性は正しいことのように思えます。このため、Core Data リファレンス ドキュメントでは、データ モデルに「未定義のオプションの一時的な属性」を設定する必要があると書かれています。
さらに、実装オブジェクトで対応するプロパティを定義する必要はありませんが、カスタム アクセサーとセッター メソッドを記述する必要があることがわかります。次のように、ドキュメントの例に基づいてこれらのメソッドをモデル化しました。
- (void)setDisplayImage:(UIImage *)anImage {
[self willChangeValueForKey:@"displayImage"];
[self setPrimitiveValue:anImage forKey:@"displayImage"];
[self didChangeValueForKey:@"displayImage"];
}
と:
- (UIImage *)displayImage {
[self willAccessValueForKey:@"displayImage"];
UIImage *anImage = [self primitiveDisplayImage];
[self didAccessValueForKey:@"displayImage"];
if (anImage == nil) {
NSData *displayImageData = [self displayImageData];
if (displayImageData != nil) {
anImage = [NSKeyedUnarchiver unarchiveObjectWithData:displayImageData];
[self setPrimitiveDisplayImage:anImage];
}
}
return anImage;
}
上記のように、これらのオブジェクトをストアに書き戻すことはありませんが、厳密に完全を期すために作成した遅延「書き込み」メソッド (willSave) もあります。
私が得ている問題は、 - (UIImage *)displayImage { のprimitiveDisplayImageおよびsetPrimitiveDisplayImageメソッドにあります。基本的に、コンパイラはこれらの 2 つのメソッドに対して、「オブジェクト X が 'primitiveDisplayImage' に応答しない可能性があります..」などの警告をスローします。ケース。この問題を解決するのを手伝ってくれる人はいますか? どうもありがとう