curso de iniciación a la programación del iphone sdk con objective-c

Post on 03-Jan-2016

38 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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; - PowerPoint PPT Presentation

TRANSCRIPT

Curso de Iniciación a la Programación del iPhone SDK con Objective-CFoundation 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 = @selector(setName:age:)

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 = @”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]];

7

NSString

• Operaciones comunes

– Añadir una cadena a otraNSString *cadena1 = @”Hola”;

NSString *cadena2;

cadena2 = [cadena1 stringByAppendingString:@” mundo”];

– Obtener valor numérico -> [cadena intValue];

– Mirar prefijos → [cadena1 hasPreffix:@”Ho”];

– Igualdad → [cadena1 isEqualToString:cadena2];

8

NSMutableString

• Subclase de NSString

• Permite modificar cadenas

• Ejemplo:

NSMutableString *mString = [NSMutableString string];

[mString appendString:@”Hola ”];

[mString appendFormat:@” %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 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]);

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 addObject:@”Lunes”];

[array addObject:@”Viernes”];

[array removeObjectAtIndex:1];

12

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

13

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”];

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:

NSLog(@“Imprime contador %d”,[array count]);

NSLog(@”Fin 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)

top related