DEVOE, JIVA
Agradecimientos
Sobre el autor
Introducción
Parte I. Introducción a Objective-C
1. Introducción a Objective-C
Utilizar Xcode como herramienta de desarrollo
Iniciar un proyecto
Explorar los archivos de su proyecto
Añadir archivos de código fuente
Ventana principal de Xcode
Proceso de compilación
Escribir el código
Transformar código fuente en código compilado y éste en ejecutable
Explorar paquetes de aplicación
Ajustes de compilación
Analizador estático de Xcode
Runtime de Objective-C
Resumen
2. Sintaxis básica
Trabajar con sentencias y expresiones
Declarar variables
Utilizar comentarios
Tipos escalares
Estructuras
Typedefs
Enum
Punteros
Operadores
El operador ternario
Trabajar con funciones
Entender las funciones
Definir funciones
Implementación frente a interfaz
Enlazar con los archivos de implementación
Controlar el flujo del programa
Sentencias condicionales
If-else
Utilizar el condicional ternario
Utilizar sentencias switch
Elegir las sentencias condicionales
Trabajar con bucles
Trabajar con for
Bucles for tradicionales
Utilizar for para la enumeración rápida
Trabajar con while
Utilizar do
Aplicar lo que hemos aprendido
Resumen
3. Añadir objetos
Objetos
Herencias
Utilizar el polimorfismo
Utilizar el tipo de datos id
Crear clases
Trabajar con archivos de clase
Escribir métodos objeto
Trabajar con métodos objeto especiales
Escribir métodos clase
Declarar objetos
Realizar llamadas en objetos
Trabajar con propiedades
Diferencias entre estado y comportamiento
Utilizar propiedades para declarar el estado de objetos
Entender los métodos accesorio de propiedades sintetizadas
Utilizar el atributo no atómico
Utilizar los atributos assign, retain y copy
Utilizar propiedades con diferentes nombres de miembros dato
Utilizar la notación punto
Aplicar objetos
Creación de la clase empleado
Creación de la clase manager
Unir las clases en el programa principal
Resumen
4. Gestión de memoria en Objective-C
Utilizar el contador de referencia
Reglas de gestión de la memoria
Utilizar la autoliberación
Pilas autorelease
Entender la memoria desde el interior de los objetos
Escribir inicializadores
Escribir métodos dealloc
Recogida de basura
Entender la recogida de basura
Tipos de referencia
Configurar su proyecto para que incluya recogida de basura
Utilizar frameworks en un proyecto con recogida de basura
Patrones de recogida de basura claves
Gestionar recursos finitos
Escribir aplicaciones Foundation con recogida de basura
Trabajar con objetos en archivos nib
Forzar la recogida de basura
Trabajar con punteros void y recogida de basura
Interfaz orientada a objetos del recogedor de basura
Elegir el modelo de gestión de memoria para sus proyectos
Resumen
Parte II. Características avanzadas
5. Trabajar con bloques
Bloques
Declarar bloques de código
Utilizar bloques de código
Ámbito de aplicación de un bloque
Gestionar la memoria de los bloques de código
Hacer que los bloques se lean más fácilmente con typedef
Utilizar bloques con hilos
Trabajar con Grand Central Dispatch
Utilizar funciones GCD para distribuir bloques de código en hilos
Trabajar con patrones comunes de diseño de bloques
Utilizar bloques de código en un mapeado
Utilizar bloques en la API estándar
Utilizar bloques en tareas paralelizables
Crear el proyecto
Utilizar bloques con un array para filtrar los números primos
Utilizar Grand Central Dispatch
Resumen
6. Utilizar codificación y observación del valor clave
Acceder a propiedades de objetos utilizando la codificación del valor clave
Trabajar con rutas de claves
Escribir accesorios que cumplan el estándar KVC
Utilizar KVC con arrays
Utilizar accesorios indexados
Utilizar accesorios sin orden
Utilizar KVC con estructuras y escalares
Buscar atributos en objetos
Observar cambios en los valores compatibles con KVC
Utilizar KVO
Registrarse como observador
Definir callbacks en KVO
Eliminar un observador
Implementar notificaciones manuales
Riesgos de utilizar KVO
Aplicar la observación del valor clave
Resumen
7. Trabajar con protocolos
Favorecer la composición sobre la herencia
Razones para no utilizar la herencia múltiple
Solución del problema con protocolos
Documentar una interfaz para que otros la implementen
Implementar protocolos en sus objetos
Declarar un protocolo
Declarar que una clase implementa un protocolo
Declarar un objeto que debe implementar un protocolo
Protocolos formales e informales
Determinar si un objeto implementa métodos opcionales
Evitar dependencias circulares del protocolo
Ejemplos del uso de protocolos
Resumen
8. Extender la funcionalidad de clases existentes
Trabajar con frameworks y clases de terceros
Trabajar con categorías
Declarar categorías
Implementar métodos de categoría
Declarar categorías en archivos de encabezado
Utilizar una categoría
Segregar funcionalidad utilizando categorías
Extender métodos de clase
Limitaciones de las categorías
Implementar protocolos con categorías
Riesgos de crear categorías en NSObject
Extender clases utilizando categorías anónimas
Asociar variables con clases existentes
Resumen
9. Escribir macros
Revisar el proceso de compilación
Funcionamiento de las macros
Definir macros
Definir constantes
Pasar constantes en la compilación
Utilizar variables en macros
Utilizar encadenamiento
Manejar condiciones
Utilizar macros predefinidas
Resumen
10. Gestionar errores
Clasificar errores
Cómo interrumpir el flujo del programa
Utilizar los diferentes mecanismos para la gestión de los errores
Utilizar códigos de retorno
Utilizar excepciones
Utilizar NSError
Crear una referencia indirecta
Diccionario userInfo de NSError
Trabajar con el gestor de recuperación
Trabajar con NSError en métodos
Resumen
Parte III. Utilizar el framework Foundation
11. Encajar los frameworks
El framework Foundation
Explorar otros frameworks
Utilizar frameworks en sus proyectos
Añadir frameworks
Incluir los encabezados
Considerar la recogida de basura
Resumen
12. Utilizar cadenas
Sintaxis de las cadenas
Utilizar cadenas con formato
Trabajar con otros métodos NSString
Utilizar categorías NSString
Resumen
13. Trabajar con colecciones
Trabajar con arrays
Utilizar diccionarios
Trabajar con conjuntos
Mutabilidad
Gestión de la memoria en colecciones
Colecciones especiales
Enumerar
Enviar mensajes a elementos
Ordenar y filtrar
Utilizar bloques en colecciones
Resumen
14. Utilizar NSValue, NSNumber y NSData
Utilizar NSValue y NSNumber
Envolver tipos de datos con NSValue
A pesar de ser un lenguaje orientado a objetos potentes y dinámicos, Objective-C no ha tenido el mismo reconocimiento que lenguajes como C++ o JAVA. Sin embargo, éste lenguaje de programación es el más moderno que existe para Macs, iPhones e iPads.
Esta es un guía de referencia para programadores Mac, iPhone e iPad que ha sido realizada por uno de los genios de Apple. Escrita de forma tal, que puede acceder a herramientas específicas, puede crear proyectos completos, de los que se incluye, casi siempre, el código.
Aprenda a gestionar la memoria de Objective-C, como encajan los frameworks y dónde ubicar los Xcode. Conozca las nuevas herramientas que usan en la actualidad los programadores profesionales. Podrá descargar material complementario del libro original en inglés en la página Web de Anaya Multimedia: www.anayamultimedia.es