NSMutableDictionary を使用して、後で使用するデータをキャッシュしたいと考えています。私のカスタムオブジェクトは次のとおりです。
@interface MyData : NSObject {
NSRange range;
NSMutableArray *values;
}
@property (nonatomic, retain) NSMutableArray *values;
そして実装:
- (id)init {
if (self = [super init]) {
values = [[NSMutableArray alloc] init];
}
return self;
}
キャッシュしたいときは、次のように使用します。
NSMutableDictionary *cache = [[NSMutableDictionary alloc] init];
NSString *key = @"KEY";
MyData *data = [[MyData alloc] init];
// save some data into data
[data.values addObject:"DATA1"];
[data.values addObject:"DATA2"];
//... ...
[cache setObject:data forKey:key];
私の質問は、次のように後でこのオブジェクトを取得すると、cache.values のカウントがゼロになることです。
[cache objectForKey:@"KEY"];
「データ」を取得でき、オブジェクトのメモリアドレスは、キャッシュに入れたときのアドレスと同じです。どうしたの?親切な人たちの助けが必要です。どんな情報でも役に立ちます。ありがとう