вот код
+ (SalesCollection*)sharedCollection {
@synchronized(self) {
if (sharedInstance == nil) {
[[self alloc] init]; // assignment not done here
}
}
return sharedInstance;
}
+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self) {
if (sharedInstance == nil) {
sharedInstance = [super allocWithZone:zone];
return sharedInstance; // assignment and return on first allocation
}
}
return nil; //on subsequent allocation attempts return nil
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
- (id)retain {
return self;
}
- (unsigned)retainCount {
return UINT_MAX; //denotes an object that cannot be released
}
- (void)release {
/* Problem in Here */
[myDict release];
sharedInstance = nil;
[sharedInstance release];
}
- (id)autorelease {
return self;
}
// setup the data collection
- init {
if (self = [super init]) {
[self setupData];
}
return self;
}
и вот мой .h файл
@interface MyCollection : NSObject {
NSMutableDictionary *myDict;
}
@property (nonatomic,retain) NSMutableDictionary * myDict;
+ (MyCollection*)sharedInstance ;
- (void)setupData;
и у меня есть один NSMutableDictionary (myDict) , который содержит массив объектов.
Теперь моя проблема заключается в том, что я хочу обновить эти данные по нажатию кнопки. поэтому я освобождаю этот экземпляр в методе - (void) release , затем попробуйте снова выполнить Init, но это создает множество утечек, поскольку, возможно, он не освобождает массив объектов из myDict
так как этого добиться. Я следую тому же примеру "TheElement" от Apple, чтобы создать синглтон.
Спасибо