Я хотел понять следующий сценарийПонимание сильный указатель и выходит за рамки
-(void) foo
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Could not save file"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//This is called when ok is pressed
}
В приведенном выше коде создается UIAlertView
сильный указатель и делегатом на себя назначается. Причина, по которой я назвал это сильным ссылочным указателем, состоит в том, что он создан в области видимости и выходит из области видимости, когда его счетчик ссылок равен 0. Я считаю, что счетчик ссылок равен 0, когда заканчивается метод foo
, почему я все еще получаю обратный вызов на clickedButtonAtIndex
? Я был в предположении, что мы не получим обратный вызов, потому что деструктор экземпляра alertView был бы вызван, как только закончится метод foo
.
И посмотрите мою книгу: http://www.apeth.com/iOSBook/ch19.html#_view_controller_and_view_creation – matt
И, конечно же, есть ситуации _lots_, в которых вы передаете объект какао и какао, сохраняя его: http: // www.apeth.com/iOSBook/ch12.html#_how_cocoa_objects_manage_memory – matt
Спасибо за очистку этого сообщения - отмечен как ответ после таймера – Rajeshwar