Curso de Iniciación a la Programación del iPhone SDK con Objective-C Foundation Framework Moncada, 9 de Julio de 2010
2 Objective-C Características especiales Tipo general 'id' → id variable; // NO id *variable Objeto puntero null -> nil Puedes mandarle un mensaje a nil variable = nil; [variable metodoObjeto] //no falla en runtime Tipo booleano BOOL (valores YES o NO) Selectores → punteros a función SEL accion = [boton accion] SEL sel
3 Foundation Framework Conjunto de clases básicas (cadenas, números, arrays) Clases para preferencias, hilos, ficheros... Entrada/salida, tuberías
4 Foundation Framework NSObject –Clase raíz –Implementa comportamiento básico Gestión de la memoria Introspección (qué clase es, descripción de clases) Igualdad entre objetos
5 Foundation Framework NSString –Clase que representa cadenas –Usada en lugar de char* –La clase más usada –Soporta Unicode (sistema de codificación que soporta todas las palabras del mundo)
6 NSString Cadenas constantes –NSString *string constante”; –NSString *string = [[NSString alloc] constante”]; –NSString *string = [NSString constante”]; Cadenas formateadas –NSString *string = [NSString %s”, [person name]];
7 NSString Operaciones comunes –Añadir una cadena a otra NSString *cadena1 NSString *cadena2; cadena2 = [cadena1 mundo”]; –Obtener valor numérico -> [cadena intValue]; –Mirar prefijos → [cadena1 –Igualdad → [cadena1 isEqualToString:cadena2];
8 NSMutableString Subclase de NSString Permite modificar cadenas Ejemplo: NSMutableString *mString = [NSMutableString string]; [mString ”]; [mString %s”,[person name]];
9 Colecciones Array (NSArray)– colección ordenada de objetos Diccionario (NSDictionary) – colección de pares clave-valor Set (NSSet) – colección de objetos únicos; Hay versión mutable e inmutable de cada tipo.
10 NSArray Métodos importantes –arrayWithObjects:(id)firstObject,...,nil –(unsigned)Count //Número de objetos –(id)objectAtIndex:(NSInteger)index –(unsigned)indexOfObject:(id)object Ejemplos NSArray *array = [NSArray NSLog(“Index of Lunes %d”,[array 0 NSLog(“Object at index 1: objecyAtIndex:1]); // Martes NSLog(“Número de días: %d”,[array count]);
11 NSMutableArray Métodos importantes: + (NSMutableArray *)array; - (void)addObject:(id)object; - (void)removeObject:(id)object; - (void)removeAllObjects; - (void)insertObject:(id)object atIndex:(unsigned)index; NSMutableArray *array = [NSMutableArray array]; [array [array [array removeObjectAtIndex:1];
12 NSDictionary Métodos comunes –dictionaryWithObjectsAndKeys:(id)firstObject –count –objectForkey Ejemplo NSDictionary *dic = [NSDictionary 2 es //Martes
13 NSMutableDictionary Métodos –+(NSMutableDictionary *)dictionary; –(void)setObject:(id)object forKey:(id)key; –(void)removeObjectForKey:(id)key; –(void)removeAllObjects; NSMutableDictionary *dic = [NSMutableDictionary dictionary]; [dic [dic [dic
14 NSSet y NSMutableSet Métodos NSSet –+setWithObjects:(id)firstObject,...,nil –(unsigned)count; –(BOOL)containsObject:(id)object; Métodos NSMutableSet –+(NSMutableSet*)set; –(void)addObject:(id)object; –(void)removeObject:(id)object; –(void)minusSet:(NSSet *)otherSet; –(void)intersectSet(NSSet *)otherSet;
15 NSNumber Normalmente se usa los tipos de números estándar de C Convertir un número en un objeto → NSNumber Subclase de NSValue No tiene versión mutable Métodos comunes –+(NSNumber *)numberWithInt.(int)value; –+(NSNumber *)numberWithDouble:(double)value; –(int)intValue; –(double)doubleValue;
16 NSLog La clase más usada al depurar un programa Muestra una cadena por consola Acepta cadenas con formato Ejemplo: contador %d”,[array count]); función”);
17 Recorrer colecciones // Manera 'clásica' Person *person; int count = [array count]; for (i = 0; i < count; i++) { person = [array objectAtIndex:i]; –NSLog([person description]); } // Manera 'moderna' for (Person *person in array) { NSLog([person description]); }
18 Bibliografía Curso Stanford 2010 (iTunes U)