180 likes | 310 Views
Curso de Iniciación a la Programación del iPhone SDK con Objective-C. Foundation Framework. Moncada, 9 de Julio de 2010. 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;
E N D
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Foundation Framework Moncada, 9 de Julio de 2010
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 = @selector(setName:age:)
Foundation Framework Conjunto de clases básicas (cadenas, números, arrays) Clases para preferencias, hilos, ficheros... Entrada/salida, tuberías
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
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)
NSString Cadenas constantes NSString *string = @”Cadena constante”; NSString *string = [[NSString alloc] initWithString:@”Cadena constante”]; NSString *string = [NSString stringWithString:@”Cadena constante”]; Cadenas formateadas NSString *string = [NSString stringWithFormat:@”Hola %s”, [person name]];
NSString Operaciones comunes Añadir una cadena a otra NSString *cadena1 = @”Hola”; NSString *cadena2; cadena2 = [cadena1 stringByAppendingString:@” mundo”]; Obtener valor numérico -> [cadena intValue]; Mirar prefijos → [cadena1 hasPreffix:@”Ho”]; Igualdad → [cadena1 isEqualToString:cadena2];
NSMutableString Subclase de NSString Permite modificar cadenas Ejemplo: NSMutableString *mString = [NSMutableString string]; [mString appendString:@”Hola ”]; [mString appendFormat:@” %s”,[person name]];
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.
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 arrayWithObject:@”Lunes”,@”Viernes”,nil]; NSLog(“Index of Lunes %d”,[array indexOfObject:@”Lunes”]);// 0 NSLog(“Object at index 1: %@”,[array objecyAtIndex:1]); // Martes NSLog(“Número de días: %d”,[array count]);
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 addObject:@”Lunes”]; [array addObject:@”Viernes”]; [array removeObjectAtIndex:1];
NSDictionary Métodos comunes dictionaryWithObjectsAndKeys:(id)firstObject count objectForkey Ejemplo NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys: @”Lunes”, @”Dia1”,@”Martes”,@”Dia2”,nil]; NSLog(@”Dia 2 es %@”,[dic objectForKey:@”Dia2”]); //Martes
NSMutableDictionary Métodos +(NSMutableDictionary *)dictionary; (void)setObject:(id)object forKey:(id)key; (void)removeObjectForKey:(id)key; (void)removeAllObjects; NSMutableDictionary *dic = [NSMutableDictionary dictionary]; [dic setObject:@”Valor” forKey:@”Clave1”]; [dic setObject:@”Valor2” forKey:@”Clave2”]; [dic removeObjectForKey:@”Clave1”];
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;
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;
NSLog La clase más usada al depurar un programa Muestra una cadena por consola Acepta cadenas con formato Ejemplo: NSLog(@“Imprime contador %d”,[array count]); NSLog(@”Fin función”);
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]); }
Bibliografía Curso Stanford 2010 (iTunes U)