2010-08-23 9 views
13

Qual è il vantaggio dell'utilizzo di blocchi rispetto ai metodi e alle funzioni normali in Objective-C? Ho letto la documentazione, ma non riesco a trovare usi specifici dei blocchi anziché altre funzionalità linguistiche.In che modo i blocchi differiscono dai normali metodi e funzioni in Objective-C?

Sono sicuro che ho perso qualcosa, così qualcuno potrebbe spiegare i vantaggi di blocchi in modo più semplice rispetto alla documentazione esistente?

risposta

10

mi piace Apple "A Short Practical Guide to Blocks" come introduzione al concetto.

Inoltre, quasi tutte le risorse indicò in risposta alla domanda "Suggested resources for learning about blocks in Snow Leopard" si applicherebbe qui.

Oltre alle risorse disponibili, raccomando gli articoli "Cocoa for Scientists (Part XXVII): Getting Closure with Objective-C" e "Cocoa for Scientists (XXXIII): 10 Uses for Blocks in C/Objective-C" di Drew McCormack, nonché "Programming with C Blocks" di Joachim Bengtsson.

Il WWDC 2010 videos per le sessioni 206 - "Presentazione di blocchi e Grand Central Dispatch su iPhone" e 211 - "Semplificare lo sviluppo di app per iPhone con Grand Central Dispatch" vale la pena anche guardare.

+0

Non sto cercando per i blocchi in SNOE leopardo ma per iPhone e iPad e per quanto primo anello concerne io non sono troppo impressionato con il modo in cui è stato spiegato there.Can mi suggeriscono alcuni codici di avvio per blocks.That sarà ottimo aiuto .. –

+0

@Ajay Pandey - Non c'è differenza funzionale tra i blocchi di Snow Leopard e quelli su iOS 4.0. La sintassi della lingua è la stessa e Grand Central Dispatch è la stessa, quindi tutti i link qui si applicano. Chiedere ad esempio il codice per i blocchi è come chiedere un codice di esempio per metodi o funzioni. È una funzionalità linguistica di base, quindi è difficile creare un esempio di base. –

+0

@Ajay Pandey - Ho aggiunto qualche altra risorsa nella mia risposta che potrebbe essere utile. –

13

blocchi sono un modo di confezionamento di un pezzo di codice ed efficace conservarla per un uso successivo. Un blocco è comunemente usato al posto di una funzione di richiamata. Le nuove API dell'SDK di iPhone utilizzano i blocchi in questo modo. L'API prenderà un "blocco" di codice che verrà eseguito al completamento.

Si evita di dover creare il proprio thread e mantenere lo stato di ogni thread, gestire i blocchi, piscine configurazione autorelease ecc

quando utilizzato con il Grand Central Dispatch (GCD) blocchi API può essere eseguito su code e porzioni intere di codice possono essere eseguite in modo asincrono con uno sforzo minimo, ma mantenendo la robustezza necessaria per il codice multithread.

+0

Capisco che è importante quando si tratta di utilizzare con GCD, ma a parte questo mi sto trovando difficoltà a capire i termini come callback e molte cose come this.The documentazione ha utilizzato terminilogy complesso in modo che io sono qui se qualcuno può informi me il vero uso dei blocchi nella lingua dei principianti. Per favore, tienilo semplice e un po 'di codice può essere spiegato, che sarà fantastico ... Grazie –

+4

@Ajay Pandey - Quale linguaggio specifico ti dà problemi? Un callback è un metodo o una funzione che viene attivata in risposta a qualcosa che accade all'interno dell'applicazione o del sistema. I blocchi possono consentire di definire azioni che si svolgono in risposta a un evento, ma piuttosto che scrivere un metodo o una funzione separati, consentono di scrivere il codice di gestione nel punto in cui si imposta il listener per quell'evento. Questo può salvare un pasticcio di codice e rendere la tua applicazione molto più organizzata. –

+0

questo è quello che stavo capendo ma ora ho ottenuto la conferma. Grazie. –

Problemi correlati