top
logo

Boletín de Novedades


¿Acepta HTML?

Inicio
Objective-C. Curso práctico para programadores Mac OS X, iPhone y iPad Objective C. Curso práctico de formación para programadores Mac OS X, iPhone y iPad
López Hernández, Fernando
 

Resumen


¿Quiere desarrollar aplicaciones para algún sistema operativo de Apple? En este curso práctico encontrará cómo hacerlo.

El libro está orientado a programadores autodidactas que pretenden iniciarse en la programación de los dispositivos de Apple. De forma progresiva se va dando significado a los muchos conceptos que encierra este apasionante lenguaje.

La primera parte trata en profundidad todos los aspectos de Objective-C, el lenguaje de programación compartido por Mac OS X, iPhone y iPad para el desarrollo de sus aplicaciones. La segunda parte detalla cómo utilizar la librería de clases en que se basan los distintos sistemas operativos de la manzana.

El texto contiene multitud de ejemplos prácticos que permiten entender los entresijos y secretos del lenguaje, y que, además, muestran la forma adecuada de crear programas potentes y eficientes.

Con este libro, el lector conocerá a fondo el lenguaje Objective-C, y aprenderá con rapidez cómo utilizar de manera eficaz las librerías de programación en los distintos sistemas; y al finalizar su lectura podrá seguir aprendiendo por su cuenta, ya que tendrá una idea clara de qué librerías corresponde usar para cumplir cada requisito profesional con el que se vaya encontrando. 

Más Datos


  • Título: Objective C. Curso práctico de formación para programadores Mac OS X, iPhone y iPad
  • Autor: Fernando López Hernández
  • ISBN: 978-84-938312-7-1
  • 560 páginas
  • Formato disponible: Papel
  • Referencia: RC0029

Contenido adicional


Consultar Índice
Descargar Índice

Compartir en:


Facebook  Twitter 

Índice


Prefacio ...................................................................................................................... XIX

PARTE I: EL LENGUAJE OBJECTIVE-C


CAPÍTULO 1: EMPEZANDO A PROGRAMAR CON OBJECTIVE-C
 

Entornos de programación ........................................................................................... 3

Compilando con las GCC ............................................................................................... 5 
 Crear un ejecutable ................................................................................................... 6 
 Framework y runtime de Objective-C ....................................................................... 7 
 Programar con el framework de clases de GNU ....................................................... 8
 Programar con el framework de clases de NeXTSTEP ............................................. 10 
Clang, LLVM y LLDB ..................................................................................................... 11 
 Compilando con Clang ............................................................................................ 13 
 Crear una librería estática o dinámica .................................................................... 14 
 Compilación cruzada para iOS ................................................................................ 14 
Compilando con Xcode ............................................................................................... 17 
 Crear un programa .................................................................................................. 19 
 Crear una librería de enlace estático ...................................................................... 22 
 Enlazar con la librería de enlace estático ................................................................ 24 
 Crear una librería de enlace dinámico .................................................................... 25 
 Enlazar con la librería de enlace dinámico .............................................................. 28 
 Crear un framework ................................................................................................ 30
 Enlazar con el framework ....................................................................................... 32 
 Los ficheros de configuración Xcode ....................................................................... 33 
 Los workspaces ....................................................................................................... 35

 

CAPÍTULO 2: CARACTERÍSTICAS DEL LENGUAJE

Qué es Objective-C ...................................................................................................... 37

Lenguaje fuertemente dinámico ................................................................................. 38

 Memoria dinámica .................................................................................................. 39

 Tipos dinámicos ...................................................................................................... 39

 Introspección .......................................................................................................... 40

 Enlace dinámico ...................................................................................................... 40

 Carga dinámica ....................................................................................................... 41

Asociación, agregación y conexiones .......................................................................... 42

Componentes vs. frameworks ..................................................................................... 43

CAPÍTULO 3: OBJETOS Y CLASES

 Clases .......................................................................................................................... 45

 La interfaz ............................................................................................................... 46

 La implementación ................................................................................................. 48

Objetos ........................................................................................................................ 49

 Instanciar objetos ................................................................................................... 50

 Tipos estáticos y dinámicos ..................................................................................... 51

Variables de instancia ................................................................................................. 53

Métodos ...................................................................................................................... 54

 Declaración de un método ...................................................................................... 54

 Implementación de un método .............................................................................. 56

 Name mangling ....................................................................................................... 57

 Ejecutar un método ................................................................................................ 59

 Número variable de parámetros ............................................................................. 60

Encapsulación.............................................................................................................. 61

Clases como estructuras de datos ............................................................................... 63

 Clases sin clase base ............................................................................................... 63

 Paso de objetos por valor ....................................................................................... 64

Objetos cadena ........................................................................................................... 65

 Crear y manipular objetos cadena .......................................................................... 65

 Formatos de codificación ........................................................................................ 66

 Formatear cadenas ................................................................................................. 68

 Imprimir cadenas formateadas ............................................................................... 70

 Leer y escribir cadenas de ficheros y URLs .............................................................. 70

Tipos de datos de 32 y 64 bits ..................................................................................... 72

 Tipos de datos GCC ................................................................................................. 72

 Imprimir con diferentes tamaños de palabra ......................................................... 74

Declaraciones adelantadas de clase ............................................................................ 75

CAPÍTULO 4: PROFUNDIZANDO EN EL LENGUAJE

Herencia ...................................................................................................................... 79
 La clase raíz ............................................................................................................. 80 
 Redefinir métodos y variables de instancia ............................................................ 80 
 Los receptores especiales self y super .................................................................... 80 
Objetos clase ............................................................................................................... 83 
 Los objetos clase ..................................................................................................... 83 
 La variable de instancia isa ..................................................................................... 85 
 Crear instancias de una clase .................................................................................. 86 
 Personalización con objetos clase ........................................................................... 87 
 Introspección .......................................................................................................... 87 
 Variables de clase ................................................................................................... 88 
 Inicializar un objeto clase ........................................................................................ 88 
Otros receptores especiales ........................................................................................ 89 
Ruta de un mensaje durante su ejecución .................................................................. 91 
Objetos metaclase ...................................................................................................... 93 
 Objetos de instancia, clase y metaclase .................................................................. 93 
 Obtener la metaclase de una clase ......................................................................... 93 
 La variable de instancia super_class ....................................................................... 95 
 Métodos de la clase raíz en los objetos clase ......................................................... 95 
Ciclo de vida de un objeto ........................................................................................... 97 
 Creación e inicialización .......................................................................................... 97 
 Implementar la inicialización ................................................................................ 104 
 Desinicialización y liberación ................................................................................ 108 
Categorías ................................................................................................................. 109 
 Qué son las categorías .......................................................................................... 109 
 Declarar la interfaz de una categoría .................................................................... 110 
 Implementación de una categoría ........................................................................ 111 
 Sobrescribir métodos con categorías .................................................................... 113 
 Categorías en la clase raíz ..................................................................................... 113 
Protocolos ................................................................................................................. 114 
 Declarar un protocolo ........................................................................................... 116 
 Adoptar un protocolo ........................................................................................... 117 
 Tipificación estática de protocolo ......................................................................... 118 
 Jerarquía de protocolos ........................................................................................ 121
 El protocolo NSObject ........................................................................................... 122 
 Objetos protocolo ................................................................................................. 122 
 Declaración adelantada de protocolos ................................................................. 123 
 Protocolos informales ........................................................................................... 124 
 Proxies y delegados .............................................................................................. 125 
 Protocolos formales con métodos opcionales ...................................................... 127 
Extensiones ............................................................................................................... 127 
Clases abstractas ....................................................................................................... 129 
Cluster de clases ........................................................................................................ 131

CAPÍTULO 5: EL RUNTIME DE OBJECTIVE-C

Interactuar con el runtime de Objective-C ................................................................ 133 
El sistema de paso de mensajes ................................................................................ 134 
 Los selectores........................................................................................................ 135 
 Ejecutar métodos a través de selectores .............................................................. 136 
 El patrón de diseño target-action ......................................................................... 137 
 Evitar errores en el envío de mensajes ................................................................. 138 
 Parámetros implícitos ........................................................................................... 139 
 Cómo se envían los mensajes ............................................................................... 140 
Gestión de memoria por cuenta de referencias ........................................................ 142 
 Técnicas de gestión de memoria .......................................................................... 142 
 Mantener la cuenta de referencias de un objeto ................................................. 143 
 Métodos para cuenta de referencias .................................................................... 144 
 Política de gestión de cuenta de referencias ........................................................ 145 
 Retornar un objeto ............................................................................................... 146 
 Recibir un objeto de un ámbito superior .............................................................. 147 
 Métodos factory ................................................................................................... 147 
 Métodos setter ..................................................................................................... 148 
 Retenciones cíclicas .............................................................................................. 149 
 Referencias débiles ............................................................................................... 150 
 Validez de los objetos compartidos ...................................................................... 151 
 Autorelease pools ................................................................................................. 152 
La clase raíz ............................................................................................................... 156 
 Creación, copia y liberación de objetos ................................................................ 157 
 Identificar objetos y clases .................................................................................... 158 
 Introspección de jerarquía de protocolos ............................................................. 160 
 Introspección de métodos .................................................................................... 161 
Copia de objetos ....................................................................................................... 162 
 La interfaz NSCopying ........................................................................................... 162 
 La interfaz NSMutableCopying .............................................................................. 163 
 Método getter/setter y liberación de objetos agregados ..................................... 164 
Gestión de excepciones ............................................................................................ 165 
 El bloque @try-@catch ......................................................................................... 165 
 Lanzar excepciones con @throw ......................................................................... 165 
 Usar varios bloques @catch ................................................................................. 167 
 El bloque @finally ................................................................................................. 168 
 Excepciones y errores ........................................................................................... 169 
 El handler de excepciones no capturadas ............................................................. 172 
 El handler de excepciones por defecto ................................................................. 173 
Bloques sincronizados ............................................................................................... 174

CAPÍTULO 6: OBJECTIVE-C 2.0

Las propiedades ........................................................................................................ 177 
 Declarar propiedades ............................................................................................ 178 
 Implementar propiedades .................................................................................... 178 
 Acceso a propiedades ........................................................................................... 180 
 Modificadores de la propiedad ............................................................................. 180 
 Personalizar la implementación ............................................................................ 184 
 El operador punto ................................................................................................. 187 
 Redefinir modificadores de propiedad ................................................................. 191 
 Variables de instancia frágiles ............................................................................... 192 
El recolector de basura ............................................................................................. 194 
 Activar el recolector de basura ............................................................................. 194 
 Técnicas de recolección de basura ....................................................................... 196 
 La librería auto ...................................................................................................... 200 
 Recolector de memoria con tipos fundamentales ................................................ 201 
 Gestión de memoria de objetos puenteados ....................................................... 202 
 Clases para recolección de basura ........................................................................ 204 
 Finalizar un objeto ................................................................................................ 206 
 Ventajas e inconvenientes .................................................................................... 208 
 Trazar la recolección de basura ............................................................................ 209

 

CAPÍTULO 7: LOS OBJETOS COLECCIÓN

Objetos array ............................................................................................................ 211 
 Objetos arrays inmutables .................................................................................... 212 
 Objetos array mutables ........................................................................................ 215 
 Rangos y concatenaciones .................................................................................... 216 
 Copia de objetos array .......................................................................................... 217 
 Objetos array de punteros .................................................................................... 218
Objetos conjunto ....................................................................................................... 218 
 Objetos conjunto inmutables ............................................................................... 219 
 Objetos conjunto mutables .................................................................................. 221 
 Operaciones con conjuntos .................................................................................. 222 
 Objetos conjunto con repeticiones ....................................................................... 222 
Recorrer los elementos de una colección ................................................................. 223 
 Enumeraciones ..................................................................................................... 223 
 Enumeraciones rápidas ......................................................................................... 224 
 Ejecutar un selector .............................................................................................. 225 
 Ordenar elementos ............................................................................................... 225 
 Filtrar elementos ................................................................................................... 227 
Objetos diccionario ................................................................................................... 228 
 Objetos diccionario inmutables ............................................................................ 228 
 Objetos diccionario mutables ............................................................................... 231 
 Objetos diccionario de punteros ........................................................................... 231 
Tipos fundamentales en colecciones ........................................................................ 232

CAPÍTULO 8: KEY-VALUE CODING

Qué es KVC ................................................................................................................ 233 
 Tecnologías relacionadas ...................................................................................... 234 
 Terminología ......................................................................................................... 235 
Métodos de acceso ................................................................................................... 235 
 Lecturas simples .................................................................................................... 236 
 Camino de claves .................................................................................................. 237 
 Representación dinámica de objetos .................................................................... 239 
 Escrituras simples ................................................................................................. 240 
 Soporte para escalares y estructuras .................................................................... 242 
 Lectura de propiedades uno a muchos ................................................................. 242 
 Escritura de propiedades uno a muchos ............................................................... 244 
Validar una propiedad ............................................................................................... 245 
 Métodos KVC para validación ............................................................................... 245 
 Métodos de patrón para validación ...................................................................... 246 
Operadores en caminos de claves ............................................................................. 248 
Descripción de las propiedades ................................................................................. 248

CAPÍTULO 9: KEY-VALUE OBSERVING

Qué es KVO ............................................................................................................... 251 
Registrar observadores ............................................................................................. 252 
 Registrar el objeto observador ............................................................................. 252
 Recibir notificaciones de cambio .......................................................................... 253 
 Eliminar un objeto observador ............................................................................. 254 
Notificaciones automáticas y manuales .................................................................... 255 
 Cóctel de punteros isa .......................................................................................... 255 
 Notificaciones automáticas ................................................................................... 255 
 Notificaciones manuales ....................................................................................... 256 
 Desactivar la notificación automática ................................................................... 257 
 Registrar propiedades dependientes .................................................................... 258

CAPÍTULO 10: APROVECHANDO TODA LA POTENCIA DEL LENGUAJE

Directivas del preprocesador y compilador .............................................................. 261 
 Directivas del preprocesador ................................................................................ 261 
 Directivas del compilador ..................................................................................... 262 
Zonas de memoria .................................................................................................... 268 
 Creación y gestión de zonas de memoria ............................................................. 269 
 Reservar y liberar memoria en una zona .............................................................. 269 
Forwarding ................................................................................................................ 270 
 El método forward:: .............................................................................................. 271 
 Parámetros formales y reales ............................................................................... 272 
 Redefinir el forwarding ......................................................................................... 274 
 Delegados y herencia ............................................................................................ 276 
 Posing ................................................................................................................... 276 
Mensajes remotos .................................................................................................... 278 
 Modificadores de tipo ........................................................................................... 280 
 Mensajes síncronos y asíncronos .......................................................................... 281 
 Paso de punteros .................................................................................................. 282 
 Paso de objetos ..................................................................................................... 284 
Tipos de datos y constantes predefinidas ................................................................. 285 
 Tipos de datos predefinidos .................................................................................. 285 
 Constantes predefinidas ....................................................................................... 287 
Optimización del acceso a métodos .......................................................................... 288 
Estilos de codificación ............................................................................................... 289 
 Clases, categorías y protocolos formales .............................................................. 290 
 Prefijos .................................................................................................................. 290 
 Métodos y variables de instancia .......................................................................... 291 
 Funciones, variables globales y constantes .......................................................... 292 
 Variables locales ................................................................................................... 292 
Objective-C++ ............................................................................................................ 292

PARTE II: FOUNDATION FRAMEWORK


CAPÍTULO 11: MANEJO DE FICHEROS Y DIRECTORIOS
 

Gestión del sistema de ficheros ................................................................................ 297 
 Crear, copiar y borrar ficheros y directorios ......................................................... 297 
 Enlaces y enlaces simbólicos ................................................................................. 299 
 Permisos ............................................................................................................... 299 
 Atributos ............................................................................................................... 300 
 Listar directorios ................................................................................................... 303 
 Acceso al contenido de los ficheros ...................................................................... 303 
 Directorio actual ................................................................................................... 304 
Handles de ficheros ................................................................................................... 304 
 Crear un handle de fichero ................................................................................... 304 
 Leer y escribir ........................................................................................................ 305 
 Cerrar el handle de fichero ................................................................................... 305 
Path utilities .............................................................................................................. 306 
 Localizar ficheros del sistema ............................................................................... 308 
Resolver alias ............................................................................................................ 308 
Servicios del workspace ............................................................................................ 310 
 Abrir ficheros ........................................................................................................ 311 
 Lanzar aplicaciones ............................................................................................... 311 
 Obtener información de ficheros .......................................................................... 313 
 Montar y desmontar unidades ............................................................................. 314

CAPÍTULO 12: LOS OBJETOS DATO

Qué son los objetos dato .......................................................................................... 315 
Objetos dato inmutables ........................................................................................... 316 
 Creación a partir de un buffer ............................................................................... 316 
 Creación a partir de un fichero ............................................................................. 317 
 Acceder al buffer ................................................................................................... 317 
 Guardar el contenido del objeto dato ................................................................... 318 
Objetos dato mutables .............................................................................................. 319 
 Creación ................................................................................................................ 319 
 Leer y modificar el contenido ............................................................................... 319 
 Copiar objetos dato .............................................................................................. 320


CAPÍTULO 13: ARCHIVADO Y SERIALIZACIÓN

Introducción .............................................................................................................. 321 
Archivado .................................................................................................................. 322 
 Objetos codificadores y objetos codificables ........................................................ 323 
 Crear un objeto archivador ................................................................................... 325 
 Crear un objeto desarchivador ............................................................................. 326 
 Archivar un grafo de objetos ................................................................................ 327 
 Implementar un objeto codificable ...................................................................... 328 
 Codificar y decodificar tipos fundamentales ......................................................... 331 
 Codificación condicional ....................................................................................... 332 
 Restringir el soporte para objetos codificadores .................................................. 333 
Serialización .............................................................................................................. 333 
 Listas de propiedades ........................................................................................... 334 
 API de serialización ............................................................................................... 335

CAPÍTULO 14: CONFIGURACIÓN DEL RUNTIME

Introducción .............................................................................................................. 337 
Bundles ..................................................................................................................... 337 
 Estructura de un bundle moderno ........................................................................ 339 
 Información de configuración de un bundle ......................................................... 346 
 Paquetes y Finder ................................................................................................. 354 
 API para gestión de bundles ................................................................................. 355 
 Variables de entorno ............................................................................................ 362 
El sistema de preferencias ........................................................................................ 362 
 Los dominios ......................................................................................................... 363 
 Acceso programático a las preferencias ............................................................... 367 
 Fijar las preferencias por defecto ......................................................................... 367

CAPÍTULO 15: GESTIÓN DE PROCESOS

Información de nuestro proceso ............................................................................... 369 
 Obtener información del proceso ......................................................................... 369 
 Obtener información del host ............................................................................... 370 
Crear nuevos procesos .............................................................................................. 371 
 Obtener información sobre el proceso ................................................................. 371 
 Modificar el entorno de ejecución de un proceso ................................................ 372

CAPÍTULO 16: PROGRAMACIÓN MULTIHILO

Conceptos básicos ..................................................................................................... 373 
 Tipos de hilos ........................................................................................................ 374 
 Técnicas de sincronización .................................................................................... 375 
 Las señales ............................................................................................................ 376 
 Los bucles de sondeo ............................................................................................ 376 
 Consideraciones de diseño ................................................................................... 377 
 Alternativas a la programación multihilo .............................................................. 378 
 Los objetos operación ........................................................................................... 379 
 Protección multihilo .............................................................................................. 379 
Crear hilos ................................................................................................................. 379 
 Crear hilos Foundation .......................................................................................... 379 
 Crear hilos POSIX................................................................................................... 382 
 Hilos POSIX en Foundation .................................................................................... 384 
 Configurar los hilos ............................................................................................... 385 
 Terminar los hilos .................................................................................................. 387 
Programación con objetos operación ....................................................................... 388 
 Ejecución directa frente a colas de operación ...................................................... 388 
 Operaciones no-concurrentes y concurrentes ...................................................... 388 
 Operaciones no-concurrentes .............................................................................. 389 
 Dependencias entre operaciones ......................................................................... 391 
 Colas de operación ................................................................................................ 392 
 Multiplicador de matrices ..................................................................................... 394 
 Operaciones concurrentes .................................................................................... 402 
 Métodos sincronizados ......................................................................................... 403 
 Responder a errores ............................................................................................. 403

CAPÍTULO 17: COMUNICACIÓN Y SINCRONIZACIÓN

Comunicación y sincronización ................................................................................. 405 
Los cerrojos ............................................................................................................... 406 
 Cerrojos POSIX ...................................................................................................... 406 
 Cerrojos Foundation ............................................................................................. 407 
 Los bloques sincronizados .................................................................................... 410 
 Secciones críticas en colecciones .......................................................................... 410 
Barreras de memoria y variables volátiles ................................................................ 411 
Operaciones atómicas ............................................................................................... 412 
Cerrojos de sondeo ................................................................................................... 414 
Condiciones ............................................................................................................... 414 
 Condiciones POSIX................................................................................................ 415
 Condiciones Foundation ....................................................................................... 418 
Pipes .......................................................................................................................... 420 
 Pipes BSD .............................................................................................................. 420 
 Pipes Foundation .................................................................................................. 421 
Memoria compartida ................................................................................................ 423

CAPÍTULO 18: GESTIÓN DE EVENTOS

El gestor de ventanas ................................................................................................ 427 
Gestión de eventos ................................................................................................... 428 
Los bucles de sondeo de eventos .............................................................................. 430 
 Anatomía de un bucle de sondeo ......................................................................... 431 
 Los modos del bucle de sondeo ............................................................................ 432 
 Obtener y ejecutar el bucle de sondeo ................................................................. 433 
 Terminar el bucle de sondeo ................................................................................ 435 
 Tipos de fuentes ................................................................................................... 436 
 Los temporizadores .............................................................................................. 438 
 Ejecutar selectores en otros hilos ......................................................................... 440 
 Bucles de sondeo Core Foundation ...................................................................... 441 
Las notificaciones ...................................................................................................... 443 
 Para qué sirven las notificaciones ......................................................................... 443 
 Cuándo usar notificaciones ................................................................................... 444 
 Los objetos notificación ........................................................................................ 445 
 Los centros de notificación ................................................................................... 446 
 Los centros de notificación distribuidos ............................................................... 447 
 Las colas de notificación ....................................................................................... 452

CAPÍTULO 19: PROGRAMACIÓN EN RED

Introducción a la programación en red ..................................................................... 455 
Sockets BSD ............................................................................................................... 456 
 Implementar un cliente ........................................................................................ 457 
 Implementar un servidor ...................................................................................... 461 
Resolución de nombres DNS ..................................................................................... 466 
Objetos stream .......................................................................................................... 467 
 Políticas de bloqueo .............................................................................................. 467 
 Procesar el stream ................................................................................................ 469 
Sockets con objetos Foundation ............................................................................... 477 
 Representar descriptores de fichero .................................................................... 477 
 Operaciones asíncronas ........................................................................................ 478 
 Escribir datos en background ................................................................................ 483
Programación en red con Core Foundation .............................................................. 484 
 CFSocket ............................................................................................................... 484 
 CFStream ............................................................................................................... 495 
 CFHTTP y CFFTP .................................................................................................... 495 
Sistema de carga de URLs.......................................................................................... 503 
 Conexión síncrona ................................................................................................. 504 
 Conexión asíncrona ............................................................................................... 505 
 Bajar ficheros ........................................................................................................ 508

CAPÍTULO 20: OBJETOS DISTRIBUIDOS

Introducción .............................................................................................................. 513 
Crear y acceder a objetos remotos ........................................................................... 513 
 Definir el objeto remoto ....................................................................................... 514 
 Exportar un objeto remoto ................................................................................... 515 
 Acceder al objeto remoto ..................................................................................... 516 
Arquitectura, conexiones y proxies ........................................................................... 518 
 Las conexiones ...................................................................................................... 519 
 Los proxies ............................................................................................................ 520 
Los puertos ................................................................................................................ 523 
 Envío y recepción de mensajes ............................................................................. 523 
 Registrar los puertos ............................................................................................. 525 
Autorizar conexiones ................................................................................................ 525
Manejo de errores en la conexión ............................................................................ 526

ÍNDICE ALFABÉTICO ............................................................................................ 529

 

Encuestas

¿Comprarías libros en formato e-book?
 

Síguenos en: Follow Me on Pinterest

bottom

Copyright 2013 RC LIBROS

lida daidaihua strong version
botanical slimming