2013-11-22 11 views
10

È possibile avere una variabile statica di "tipo di blocco"?Variabile di blocco statico in Objective-C

Ho una classe che fa solo roba in metodi statici. Dopo l'esecuzione di questi metodi, chiamo statusChangedBlock. Solo per questo creo un'istanza condivisa della classe e utilizzo la sua proprietà a blocco singolo. Mi chiedo se sia possibile avere una variabile di blocco statico; quindi non dovrei creare un'istanza con una singola proprietà, solo per notificare che il mio stato è cambiato.

So che esiste un'opzione di NSNotification, ma non mi piace utilizzarlo, con alcune rare eccezioni.

... questa domanda sembra in qualche modo stupida, non posso dire perché. Spero che qualcuno lo faccia notare.

+0

è possibile dichiarare che statico, ma lo crea statica. è ciò che funzione per –

+0

@BryanChen non riesco a capire come dichiararlo statico; Inoltre non sono sicuro di cosa intendi per "funzione per". Puoi fare un semplice esempio? – user1244109

risposta

11

per dichiarare una variabile statica del tipo di blocco

typedef ReturnType (^MyBlockType)(ArgumentType, ArgumentType2); 
static MyBlockType myblock; 
static MyBlockType myblock2; 

o

static ReturnType (^myblock)(ArgumentType, ArgumentType2); 
+0

, grazie! – user1244109

+2

'static MyBlockType myAssignedBlock =^ReturnType (ArgumentType arg1, ArgumentType2 arg2) {... do something ...};' funziona correttamente. –

0

Una variabile di tipo blocco è in realtà un puntatore, simile a un oggetto. È possibile avere una variabile di blocco statico, ma è necessario assegnarne il valore in fase di runtime, perhapse utilizzando un blocco dispatch_once.

+0

Grazie! sarebbe davvero d'aiuto se tu fornissi un esempio più semplice, – user1244109

Problemi correlati