Скажем, у меня есть класс DoStuff, и у этого класса есть два метода, например,
- (NSMutableDictionary* returnToCaller) methodOne : (NSString* ) myString {
NSMutableDictionary* bundleOfJoy = [[NSMutableDictionary alloc] init];
if (myString) {
bundleOfJoy = [self methodTwo];
}
return bundleOfJoy;
}
- (NSMutableDictionary* returnToMethodOne) methodTwo {
NSMutableDictionary* anotherDictionary = [[NSMutableDictionary alloc] init];
[anotherDictionary setObject: @"hardcodedstring" forKey: @"theKey"];
return anotherDictionary;
}
хорошо, так что терпите меня, так как мое фу-менеджмент памяти слабоват.Я не могу освободить два словаря, созданные вручную после возврата, поскольку команда release не будет вызываться.Я не могу сделать это до возврата или я не передаю значения.Насколько я понимаю, способ справиться с этим - с помощью пула автоматического выпуска ...
pool = [[NSAutoreleasePool alloc] init];
и инициализации моих объектов как таковых
NSMutableDictionary* anotherDictionary = [[[NSMutableDictionary alloc] init] autorelease];
, а затем вызова
[pool drain];
Итак, если это правильно, где я могу инициировать пул?В пробуждении от ниб?И куда я могу позвонить [сток из бассейна]?
, если это неверно, может ли кто-нибудь выправить меня (но, пожалуйста, введите медленно): D
спасибо