iOS 5 Estrutura do Twitter e bloco completeHandler - “Capturar-se fortemente neste bloco provavelmente levará a um ciclo de retenção”

Sou muito novo em programação e Objective-C e estou tentando descobrir o que há de errado com meu código. Eu li um pouco sobre blocos, mas não sei como nada do que li até agora é relevante para o meu códig

Meu código está usando o iOS 5 Twitter Framework. Eu uso a maior parte do código de exemplo fornecido pela Apple, então, na verdade, eu não tinha idéia de que estava usando um bloco para o manipulador de conclusã

Agora recebo essas duas mensagens do Xcode 4 dizendo " 1. O bloco será retido por um objeto fortemente retido pelo objeto capturado "e"Capturar 'auto' fortemente neste bloco provavelmente levará a um ciclo de retenção ".

Basicamente, o que fiz foi remover o código que a Apple usou em seu manipulador de conclusão (alternar instrução com TWTweetComposeViewControllerResultCancelled & TWTweetComposeViewControllerResultDone) e usar minhas declarações if com[imagePickerController sourceType].

Então osendTweet é chamado depois que uma imagem é adicionada ao tweet.

Espero que alguém possa me explicar por que isso está acontecendo e como posso resolvê-lo. Além disso: posso colocar o código do manipulador de conclusão em um método em vez de em um bloc

- (void)sendTweet:(UIImage *)image
{
    //adds photo to tweet
    [tweetViewController addImage:image];

    // Create the completion handler block.
    //Xcode: "1. Block will be retained by an object strongly retained by the captured object"
    [tweetViewController setCompletionHandler:
                             ^(TWTweetComposeViewControllerResult result) {
            NSString *alertTitle,
                     *alertMessage,
                     *otherAlertButtonTitle,
                     *alertCancelButtonTitle;

            if (result == TWTweetComposeViewControllerResultCancelled) 
            {
                //Xcode: "Capturing 'self' strongly in this block is likely to lead to a retain cycle"
                if ([imagePickerController sourceType])
                {
                    alertTitle = NSLocalizedString(@"TCA_TITLE", nil);
                    alertMessage = NSLocalizedString(@"TCA_MESSAGE", nil);
                    alertCancelButtonTitle = NSLocalizedString(@"NO", nil);
                    otherAlertButtonTitle = NSLocalizedString(@"YES", nil);

                    //user taps YES
                    UIAlertView *alert = [[UIAlertView alloc] 
                                             initWithTitle:alertTitle 
                                                   message:alertMessage 
                                                  delegate:self   // Note: self
                                         cancelButtonTitle:alertCancelButtonTitle 
                                         otherButtonTitles:otherAlertButtonTitle,nil];
                    alert.tag = 1;
                    [alert show];                
                }            
            }

questionAnswers(4)

yourAnswerToTheQuestion