Просматривая этот код, я думаю, что более вероятно, что ваш класс Агента пропускает телефон.Предполагая, что агент использует retain
для свойства телефона, это заставит телефон сохраняться дольше, чем следует.
Создатель объекта получает "кредит" с утечкой, даже если дополнительное удержание находится где-то еще.
Другими словами, в агенте:
- (void)dealloc {
self.phone = nil;
// anything else you need to do
[super dealloc];
}