我想使用 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"];
我可以检索“数据”并且对象的内存地址与我将其放入缓存时的地址相同。怎么了?我需要一些好心人的帮助,任何信息都是有帮助的。谢谢