上の他のオブジェクトを返します。は、私はあなたがいつものようにObjective-Cのオブジェクトを初期化する必要がある多くの場所で読んだのinit
今、私はこのような何かをしようとしている、と私は保持・放出がどのように動作するかを、私は右のそれを持っている場合、向かい合っわからない:
- (id) init:(int)idx {
id obj = [Cache findSelf:idx];
if (obj) {
[self release];
self = [obj retain];
} else {
self = [self doLoad];
}
return self;
}
私は主によそれがself
とobj
の保持と解放を行う正しい方法であるかどうか不思議です。より良い方法がありますか?
実際、私のキャッシュは静的な変数ですが、ここに見られるように単純ではありません。オブジェクト自体が抽象クラスであり、複数のアイテムが同じインデックスを持つことができるので、実際には、オブジェクトとインデックスの両方を比較して正しいオブジェクトを見つけるオブジェクト自体を渡しています。各サブクラスごとに別々のリストがあります –
クラスクラスタは、この規約を破るよい理由です。 – griotspeak