したがって、Objective-C のカテゴリを使用して、サブクラス化を必要とせずにメソッドをクラスに追加できることを理解しています。また、これらのカテゴリを使用してインスタンス変数をクラスに追加できないことも理解しています。
インスタンス変数の追加に使用できるクラス拡張機能について少し読みましたが、クラス拡張機能を使用して NSData などの既存のクラスを変更する方法がわかりません。
私の問題は次のとおりです。
NSURL と NSData を含むコア データ モデルがあります。NSData は、NSURL のデータを表示します。ビューでデータを表示する必要がある場合、次のチェックを行います。 --- [NSData バイト] > 0 の場合、NSData を表示します。--- それ以外の場合は、NSURL でデータをフェッチし、返されたときにデータを表示します
十分に単純です。ただし、NSURL が更新されると問題が発生します。したがって、NSURL パスを新しい画像で変更すると、[NSData バイト] が既に 0 より大きいため、新しい画像を取得するための追加の呼び出しは行いません。
私がやりたいことは、データの取得元に関する情報を保持する URLKey というインスタンス変数を NSData に追加することです。CoreData を使用しているため、NSData をサブクラス化できません。
これに対する簡単な解決策を知っている人はいますか?おそらく、クラス拡張についての私の理解にギャップがあるか、単純な方法がないだけかもしれません。