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

18
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Foundation Framework Moncada, 9 de Julio de 2010

Upload: flynn-sweeney

Post on 03-Jan-2016

38 views

Category:

Documents


2 download

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

Page 1: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

Curso de Iniciación a la Programación del iPhone SDK con Objective-CFoundation Framework

Moncada, 9 de Julio de 2010

Page 2: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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:)

Page 3: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

3

Foundation Framework

• Conjunto de clases básicas (cadenas, números, arrays)

• Clases para preferencias, hilos, ficheros...

• Entrada/salida, tuberías

Page 4: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 5: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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)

Page 6: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 7: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 8: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

8

NSMutableString

• Subclase de NSString

• Permite modificar cadenas

• Ejemplo:

NSMutableString *mString = [NSMutableString string];

[mString appendString:@”Hola ”];

[mString appendFormat:@” %s”,[person name]];

Page 9: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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.

Page 10: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 11: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 12: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 13: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 14: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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;

Page 15: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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;

Page 16: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Page 17: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

}

Page 18: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

18

Bibliografía

Curso Stanford 2010 (iTunes U)