Garanto que procurei uma resposta no SO para minha pergunta, mas nenhuma delas foi útil. Aqui eu tenho um código simples que deve apresentar um UIImagePickerController
dentro de UIPopoverController
:
-(void)takePicture:(id)sender{
UIImagePickerController *picker=[[UIImagePickerController alloc] init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing=YES;
UIPopoverController *poc=[[UIPopoverController alloc]
initWithContentViewController:picker];
[poc presentPopoverFromBarButtonItem:bbItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:NO];
}
Agora, mesmo da primeira vez, sou [UIPopoveController dealloc]
contatado enquanto ... erro e o programa trava. Não estou fazendo nenhuma retenção, liberação ou liberação automática de acordo com o ARC. Há alguma consideração especial UIPopoverControllers
ao se beneficiar do ARC?
fonte
Quando a função é encerrada, não há nenhuma outra referência ao controlador popover, então ele é desalocado muito cedo.
Em vez disso, tente adicioná-lo como um membro de sua classe.
Tim
fonte
Adicionando o que @ phix23 respondeu, crie a propriedade * poc assim:
e então mudar
para
fonte