Domande taggate «objective-c-blocks»

I blocchi sono l'implementazione di Apple delle chiusure per C, disponibili anche per Objective-C e C ++.


8
Che cosa significa la parola chiave "__block"?
Cosa significa esattamente la __blockparola chiave in Objective-C? So che ti permette di modificare le variabili all'interno di blocchi, ma mi piacerebbe sapere ... Cosa dice esattamente al compilatore? Fa qualcos'altro? Se questo è tutto, allora perché è necessario in primo luogo? È nei documenti da qualche parte? (Non riesco …

8
Assegna una variabile all'interno di un blocco a una variabile esterna a un blocco
Sto ricevendo un errore La variabile non è assegnabile (specificatore del tipo di blocco __ mancante) sulla linea aPerson = participant;. Come posso assicurarmi che il blocco possa accedere alla aPersonvariabile e che la aPersonvariabile possa essere restituita? Person *aPerson = nil; [participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { …


7
Elenco sintassi dichiarazione di blocco
La sintassi del blocco in Objective C (e in effetti C, presumo) è notoriamente incongrua. Il passaggio di blocchi come argomenti ha un aspetto diverso rispetto alla dichiarazione di blocchi come ivars, che ha un aspetto diverso rispetto ai typedefblocchi. Esiste un elenco completo della sintassi della dichiarazione di blocco …


10
Attendere che vengano eseguiti due blocchi asincroni prima di iniziare un altro blocco
Quando si utilizza GCD, vogliamo attendere che vengano eseguiti e eseguiti due blocchi asincroni prima di passare alle fasi successive dell'esecuzione. Qual è il modo migliore per farlo? Abbiamo provato quanto segue, ma non sembra funzionare: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block2 }); …

9
Mantieni il ciclo su `self` con blocchi
Temo che questa domanda sia piuttosto semplice, ma penso che sia pertinente per molti programmatori di Objective-C che stanno entrando in blocchi. Quello che ho sentito è che, poiché i blocchi acquisiscono variabili locali a cui fanno riferimento al loro interno come constcopie, l'utilizzo selfall'interno di un blocco può comportare …

6
Quando utilizzare enumerateObjectsUsingBlock vs. per
Oltre alle ovvie differenze: Utilizzare enumerateObjectsUsingBlockquando sono necessari sia l'indice che l'oggetto Non usare enumerateObjectsUsingBlockquando è necessario modificare le variabili locali (mi sono sbagliato su questo, vedi la risposta di bbum) È enumerateObjectsUsingBlockgeneralmente considerato migliore o peggiore quando for (id obj in myArray)funzionerebbe anche? Quali sono i vantaggi / gli …

5
Dichiarare un parametro del metodo a blocchi senza usare un typedef
È possibile specificare un parametro di blocco metodo in Objective-C senza usare un typedef? Deve essere, come i puntatori a funzioni, ma non posso colpire la sintassi vincente senza usare un typedef intermedio: typedef BOOL (^PredicateBlock_t)(int); - (void) myMethodTakingPredicate:(PredicateBlock_t)predicate solo le compilazioni precedenti, tutte falliscono: - (void) myMethodTakingPredicate:( BOOL(^block)(int) ) …


7
Memorizza una chiusura come variabile in Swift
In Objective-C, puoi definire l'input e l'output di un blocco, archiviare uno di quei blocchi passati a un metodo, quindi utilizzare quel blocco in un secondo momento: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) APLCalibrationCompletionHandler …

7
Alternative a dispatch_get_current_queue () per i blocchi di completamento in iOS 6?
Ho un metodo che accetta un blocco e un blocco di completamento. Il primo blocco dovrebbe essere eseguito in background, mentre il blocco di completamento dovrebbe essere eseguito in qualsiasi coda sia stato chiamato il metodo. Per quest'ultimo l'ho sempre usato dispatch_get_current_queue(), ma sembra che sia deprecato in iOS 6 …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.