Librinformatica

Newsletter

Libreria Gaia Scienza Edizioni Erasmo Edizioni del Boccale

Objective-C guida rapida

Pearson Education Italia

Objective-C guida rapida


14,00 € IVA compresa

9788871927886

  • Volumi: 1
  • Data Pubblicazione: 03/2012
  • Lingua: italiano
  • Livello: Introduttivo Intermedio
  • Pagine: 267
  • Collana: Guida rapida
  • Editore Originale: Addison Wesley
  • Titolo Originale: Objective-C Phrasebook
  • Autore: David Chisnall

Una guida pratica al linguaggio di programmazione Objective-C per Mac e dispositivi mobili Apple, che propone più di 100 frammenti di codice e tecniche di programmazione.
Il libro è utile ai programmatori che hanno necessità di avere sottomano un manuale di riferimento con brevi esempi di idiomi Objective-C di immediato utilizzo nelle situazioni più diverse, per poter così scrivere le applicazioni più velocemente e con meno errori.


L'autore

David Chisnall partecipa attivamente al progetto GNUstep, che fornisce un’implementazione open source delle API di Cocoa, ed è cofondatore del progetto Étoilé. Ha creato una nuova libreria di runtime Objective-C, ha lavorato al supporto di Objective-C nel compilatore Clang e ha pubblicato diversi articoli sul linguaggio.


David Chisnall è uno scrittore e consulente freelance. Nel corso dei suoi studi per il dottorato di ricerca ha dato vita con altri al progetto Étoilé, allo scopo di realizzare un ambiente desktop open source basato su GNUstep, un’implementazione open source delle API OpenStep e Cocoa. Collabora attivamente allo sviluppo di GNUstep ed è autore e curatore della libreria runtime GNUstep Objective-C 2; si occupa inoltre del supporto del compilatore associato a Clang.
Al termine del dottorato, David si è rintanato in università per studiare la storia dei linguaggi di programmazione, che ha abbandonato quando si è reso conto che al di fuori del campus si poteva vedere il mare e non erano richieste tutte le scartoffie amministrative. A volte torna per collaborare a progetti che riguardano i modelli semantici dei linguaggi dinamici. David conosce molto bene Objective-C, dato che ha lavorato per entrambi i progetti sull’utilizzo del linguaggio e la sua implementazione. Si è dedicato anche all’implementazione di altri linguaggi, tra cui alcuni dialetti di Smalltalk e JavaScript, basati sulla libreria runtime di Objective-C, con l’obiettivo di combinare i codici di questi linguaggi senza scrivere un ponte di collegamento tra di essi. Quando non è impegnato a scrivere oppure a programmare, a David piace dedicarsi al tango argentino e alla salsa
cubana e giocare a badminton e a frisbee, oltre che cucinare.

Sommario

Introduzione. xvii

Nota di formattazione . . . . . . . . . . . . . . . . . . . . . . . . . xviii



Capitolo 1: La filosofia di Objective-C. 1

Il modello a oggetti . . . . . . . . . . . . . . . . . . .2

La questione dei due type system . .3

C è Objective-C . . . . . . . . . . . . . . . .4

Il linguaggio e la libreria . .5

La storia di Objective-C . . . . .7

Il supporto cross-platform . .9

La compilazione di programmi Objective-C . . . . . . . . . . . . . . . . 10



Capitolo 2: Elementi di base di Objective-C . 13

Dichiarazione dei tipi Objective-C . . . . . . . . . . . . . . . . . . 14

Invio di messaggi . . 16

I selettori . . . . . . . 19

Dichiarazione delle classi . . . 20

Utilizzo dei protocolli . . . . . . . . . 24

Inserimento di metodi in una classe . . . . . . . . . . . . . . . . 26

Utilizzo di protocolli informali . . 28

Sintetizzare i metodi con le proprietà dichiarate . . . 29

Utilizzo di self, _cmd e super . . . . . . . . . . . . . . . . . . . . . . . 33

Utilizzo del puntatore isa . . 35

Inizializzazione delle classi . . . . . . . . . . . . . . . . . . . . . . 37

Leggere l’encoding dei tipi . . 39

Utilizzo di blocchi . . 41



Capitolo 3: La gestione della memoria . 45

Trattenere e rilasciare la memoria . . . . . . . . . 46

Assegnazione di memoria alle variabili istanza . . . . . . . . . . . . . 47

Conteggio automatico dei riferimenti . . 48

Restituire oggetti tramite gli argomenti di un puntatore . 49

Evitare i cicli di retain

xii Objective-C Guida rapida Migrare alla modalità ARC . . . . . 53

Pool di autorelease . . . . 55

Utilizzare costruttori di autorelease . . . . . . . . . . . . . . . 57

Autorelease di oggetti nei metodi accessori . . . 58

Supporto automatico della garbage collection . . 58

Interagire con C . . . . . . . . . 60

La distruzione di oggetti . . . . . . . . . . . . . . . . . . . . . . . . . 62

I riferimenti weak . . . . . . . 63

Allocare memoria analizzata tramite NSScannedOption . 65



Capitolo 4: Pattern tipici di Objective-C . 67

Supporto del pattern two-stage creation . . . . . . . . . . 67

Copia di oggetti . . . . . . . . 69

Archiviare gli oggetti . . . 70

Creare inizializzatori designati . . . . 73

Applicare il pattern singleton . . . 75

Pattern delegation . . . .  . .77

Pattern façade . . . . . 78

Creare un cluster di classi . 79

Utilizzo di run loop . 82



Capitolo 5: I numeri . 85

Memorizzare numeri in collezioni . 86

Operazioni aritmetiche decimali . 89

Conversione tra stringhe e numeri . . . . . . . . 91

Leggere valori numerici da stringhe . . .. . . .92



Capitolo 6: Elaborazione di stringhe . 95

Creazione di stringhe costanti . 96

Confronto tra stringhe . . . . . . . . . 97

Elaborare una stringa un carattere alla volta . . . 99

Conversione della codifica di una stringa . . . . . . . . .102

Trimming di stringhe . . 103

Splitting di stringhe . 105

Copia di stringhe . . 106

Creare stringhe da template . . . 107

Trovare corrispondenze di pattern nelle stringhe . . . 109

Memorizzare testo formattato . . 111



Capitolo 7: Lavorare con le collezioni. 113

Utilizzare gli array . . . . . . . . . . . . . . . . . . . 114

Manipolare gli indici . . . . . . . . . . . . . . . . . . . 116

Memorizzare gruppi non ordinati di oggetti . . . . . . . . 117

Creare un dizionario . . 119

Iterare una collezione . . 120

Trovare un oggetto in una collezione . . . 122

Sottoclassi di collezioni . . . 124

Memorizzare oggetti Objective-C in collezioni C++ . 127



Capitolo 8: Data e ora. . . . . . . . . . . . . . . 131

Trovare la data corrente . . . . . 132

Convertire le date da visualizzare . . . . . . . . . . . . . . . . . . . 133

Calcolare il tempo trascorso . . . . . . . 135

Parsing delle date nelle stringhe . . 135

Ricevere eventi temporali . . . . . . . . . . . . . 137



Capitolo 9: Lavorare con le property list . 139

Memorizzare collezioni nelle property list . . . . . . . . . . . . . . 140

Leggere dati dalle property list . . . . . . . . . . . . . . . . . . . 142

Convertire i formati delle property list . . . . . . . . . . . . . . 143

Utilizzare JSON . . 145

Memorizzare i default utente . . . . . 146

Memorizzare oggetti arbitrari nei default utente . . .. . . . 149



Capitolo 10: Interagire con l’ambiente . 153

Ricavare le variabili ambiente . . . . . . . . 154

Parsing degli argomenti della riga di comando . . . . . 155

Accedere alla localizzazione utente . . . . . . . . . . . . . 156

Supportare la sudden termination . . . . . . . 158



Capitolo 11: Key-value coding . 161

Accedere ai valori tramite chiave . . . . . . . . . . . . . . . . . . . 162

Garantire la conformità con il meccanismo KVC . . . . 162

Comprendere i percorsi chiave . . . . . . . . 166

Esaminare le chiavi . . . 167

Garantire la conformità con KVO . . 169



Capitolo 12: La gestione degli errori . 171

Differenze tra le eccezioni in runtime . . . . . . . . . .  . . 172

Generare e rilevare le eccezioni . . . . . . . . . . . . . . .. . . 174

Utilizzare gli oggetti eccezione . . . . . . . . . . . . . . . . . . 176

Utilizzare il modello di eccezioni unificato . . . . . . . . . . 177

Gestire la memoria con le eccezioni . . . . . . . . . . . . . . 178

Passare i delegati di errore . . 180

Restituire i valori degli errori . . . . . . . . . . . . 181

Utilizzo di NSError . . . . . . . . . . . . . . . . . . . . . 182



Capitolo 13: Accedere a directory e file. 185

Leggere un file . . . . . . . . . . . 186

Spostare e copiare file . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Ricavare gli attributi dei file . . . . . . . . . . . . . . . . . . . . . 189

Manipolare i percorsi . . . . . . . . . . . . . . . . . . 190

Stabilire se esiste un file o una directory . . . . . . . . . . . . .. 191

Lavorare con i bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Trovare file nelle posizioni del sistema . . . . . . . . . . . .  . . . 194



Capitolo 14: I thread . 199

Creare thread . . . . . . . . . . . . . . . . . . 200

Controllare la priorità dei thread . . . . . . . . . . . . . . . . . . . 201

Sincronizzare i thread . . . . . . . . . . . 203

Memorizzare dati specifici dei thread . . . . . . . . . . . . . . . . 204

Attendere una condizione . . . . . . . . . . . . . . . . . 206



Capitolo 15: I blocchi e Grand Central. 209

Binding tra variabili e blocchi . . . . . . . . . . . . . . . . . . . . . 210

Gestire la memoria con i blocchi . . . . . . . . . . . . . . 213

Eseguire azioni in background . . . . . . . . . . . . . . . . . . . . . . 215

Creare code di lavoro personalizzate . . . . . . . . . . . . . . . . . 217



Capitolo 16: Notifiche . 219

Richiedere le notifiche . . . . . . . . . . . . . . . . . . . . . 220

Inviare le notifiche . . . . . . . . . . 221

Mettere in coda le notifiche . . . . . . . . . . . . . . . . . . . . . 222

Inviare notifiche tra le applicazioni . . . . . . . . . . . . . . 223



Capitolo 17: L’accesso alla rete. 227

Wrapping di socket C . . . . . .  . . . 228

Collegarsi ai server . . . . . . . . . 229

Condividere oggetti in rete  . . . 231

Trovare network peer . . . . 233

Caricare dati dagli URL . . . . . . . . . . . . . . . 235



Capitolo 18: Debugging di Objective-C. 239

Esaminare gli oggetti . . . 239

Riconoscere i problemi di memoria . . . . 241

Esaminare le eccezioni . . . . . . . 243

Verificare le aspettative . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Logging dei messaggi di debug . . . . 246



Capitolo 19: Il runtime di Objective-C. 249

Inviare messaggi per nome . . . . . . . . . . . 250

Trovare le classi per nome . . . . . . . . . . . . . . . . . 251

Verificare se un oggetto comprende un metodo . . . . . . . . . . . . 252

Inoltrare messaggi . . . . . . . . . . . . . . . . . . . . . 253

Trovare le classi . . 255

Esaminare le classi . . . 256

Creare nuove classi . . . . 258

Aggiungere nuove variabili istanza . . 260



Indice analitico. 263

Carrello

Non ci sono prodotti

Spedizione 0,00 €
Totale 0,00 €

Carrello Acquista