Domanda

sto usando l'AVAssetImageGenerator per ottenere immagini da un movieclip senza giocare prima. Ora Ive ha ottenuto una domanda come impostare le variabili nel ciclo di un gestore? È possibile? Sto ricevendo questo messaggio di errore e non hanno idea che cosa significa. (Google> alcun risultato).

"Variabile non è cedibile (manca Tipo __block specifier) ??"

Quindi devo chiedere ai pro's qui. Here's il codice. Voglio salvare o restituire il mio generato imageData, così posso eliminare il messaggio "setImage" all'interno di quella seguente gestore.

UIImage* thumbImg = [[UIImage alloc] init];

AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error)
{
    if (result != AVAssetImageGeneratorSucceeded) 
    {
        NSLog(@"couldn't generate thumbnail, error:%@", error);
    }
    [button setImage:[UIImage imageWithCGImage:im] forState:UIControlStateNormal];
    thumbImg = [[UIImage  imageWithCGImage:im] retain];
    [generator release];
};

sarebbe grande per conoscere questo. Grazie per il vostro tempo.

È stato utile?

Soluzione

prima di tutto sembra che non c'è bisogno di init tuo thumbImg quando il suo dichiarato - oggetto UIImage creata in quella linea sarà sovrascritto in blocco e perderà. Basta init con valore nullo.

vero problema nel codice che è variabile che si sta andando a cambiare in blocco dovrebbe essere dichiarato con __block identificatore (come dice il messaggio di errore). Così il vostro 1s linea dovrebbe essere

__block UIImage* thumbImg = nil;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top