В этом:
NSString *tempTitle = [[aDecoder decodeObjectForKey:@"QueryTitle"] retain];
self.theTitle = tempTitle;
[tempTitle release];
retain
и release
не нужны, потому что ваша собственность будет retain
объектом. Тем не менее, я думаю, что эти две струны - красная сельдь; вероятно, что утечка находится где-то еще.
Я подозреваю, что savedQueries
не высвобождается в dealloc
, который, как я предполагаю, не отображается. Это зависло бы от запросов и множества других вещей.
Это не совсем объясняет, откуда исходит утечка oldSavedArray
(если я что-то упустил).
Включите отслеживание удержания / выпуска в инструменте распределения и посмотрите, где вызывается каждое удержание / разблокирование. Вы найдете где-нибудь неуравновешенный.
Я написал сообщение в блоге , которое связано и может быть полезным.