Никогда не используйте retainCount
.В лучшем случае результаты вводят в заблуждение.
Первый порядок работы, прочитайте Рекомендации Apple по управлению памятью .
Во-вторых, используйте эти рекомендации для устранения некоторых проблем с памятью в вашем коде:
UIButton *aDeleteButton = [[UIButton alloc] initWithFrame:CGRectMake(-3, -7, 30, 29)];
// Retain count +1
// Some code...
deleteButton = aDeleteButton;
[aDeleteButton release];
// Retain count -1
Вы выделяете новый UIButton
, а затем отпускаете его.Это означает, что кнопка НЕ принадлежит вам и может исчезнуть в любое время.Я предполагаю, что у вас есть свойство в вашем классе под названием deleteButton
?Если это так, используйте его следующим образом: self.deleteButton = aDeleteButton;
В вашем методе hideDeleteButton
вы, вероятно, захотите использовать что-то похожее на это:
[self.deleteButton removeFromSuperview];
self.deleteButton = nil;
isDeleteButtonLoaded = NO;
[self setNeedsDisplay];
Опять же, это предполагает, что выесть свойство в вашем классе с именем deleteButton
.Если у вас его нет, сделайте его и используйте.Это значительно упрощает задачи управления памятью.