http://www.atomicflavor.com

Ordenar lista de Objetos en un NSMutableArray

Hasta ahora utilizaba el algoritmo de la burbuja para ordenar una lista de objetos contenida en un NSMutableArray, pero en el último proyecto en el que estoy trabajando, he usado lo siguiente que me ahorra varias líneas de código además de ser bastante claro. Tengo una listaPersonas, que es un NSMutableArray con objetos de la [...]

Read more

Obtener horas que faltan desde ahora hasta un NSDate

Para saber cuantas horas faltan desde el momento actual, hasta una fecha determinada, se puede calcular de dos formas: Forma 1: NSInteger hours = [[[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:fechaEvento toDate:[NSDate date] options:0] hour]; Forma 2: NSTimeInterval timeSince=[fechaEvento timeIntervalSinceNow]; int horasRestantes = timeSince/3600;

Read more

Trabajar con fechas en Cocoa

Una de las cosas que más nos llamo la atención de Cocoa cuando empezamos a trabajar con este Framework es lo potente que es a la hora de trabajar con fechas. Por  eso en este post os queremos dar unos tips rápidos de como hacer diferentes acciones comunes relacionadas con el tema de las fechas. Obtener [...]

Read more

Script para pasar de aif a caf con afconvert

Os pongo también el script para pasar una carpeta con archivos .aif, a formato .caf: #!/bin/bash for f in *.aif; do echo "Processing $f file…" afconvert -f caff -d I8 "$f" "${f/aif/caf}" done

Read more

Como saber si estamos en un iPad o un iPhone y si tiene o no Retina Display

Cuando estamos haciendo una App universal, y queremos que esta pueda correrse en multiples dispositivos, a menudo nos surgirá la necesidad de saber si el código está ejecutándose en un iPad, iPhone o iPod Touch. Y si es en un iPhone o iPod Touch también necesitaremos saber si dispone o no de pantalla RETINA. Para [...]

Read more

Llamadas retardadas en Objective-C

Alguna vez habéis querido invocar un método pero de manera retarda. Esto es, esperando un determinado tiempo antes de su invocación. Para ello, si tenemos un método por ejemplo: -(void)nombreMetodo{ //hacer algo } Podemos invocarlo pasados 5 segundos desde que se ejecute la instrucción de esta forma: [self performSelector:@selector(nombreMetodo) withObject:nil afterDelay:5.0]; Si queremos cancelar la [...]

Read more

Script para pasar de mp3 a caf con afconvert

Recientemente estoy trabajando mucho con OpenAL y con sonidos dentro de las aplicaciones y juegos que están en desarrollo, y con mucha frecuencia tengo que pasar carpetas enteras de formato mp3 a caf. Para hacer menos tedioso este trabajo, he desarrollado un script que nos facilitará las cosas: #!/bin/bash for f in *.mp3; do echo [...]

Read more

Esquinas redondeadas y bordes en UIWebView

Para conseguir este efecto, usaremos Quartz, accediendo a las propiedades del CALayer del web view y modificando las propiedades de las esquinas: #import <QuartzCore/QuartzCore.h> // Creamos UIWebview UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(5, 20, 310, 220)]; // Esquinas redondeadas [[webView layer] setCornerRadius:10]; [webView setClipsToBounds:YES]; // Color del borde [[webView layer] setBorderColor: [[UIColor colorWithRed:0.52 green:0.09 blue:0.07 [...]

Read more

Autentificación en servidores HTTP

Muchas veces necesitamos acceder a webs que tienen algún directorio protegido por contraseña. Para acceder a estos recursos desde nuestras aplicaciones Iniciamos la solicitud de conexión a la URL: – (void)startAuthentication { NSURL *url = [NSURL URLWithString:@"http://protectedURL.com"]; NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; } Respondemos a la autentificación usando un [...]

Read more

Obtener el UDID de tu dispositivo con iTunes

Para obtener el UDID de nuestro dispositivo iPhone o iPad, conectamos con el USB nuestro dispositivo y abrimos iTunes. Seleccionamos nuestro dispositivo en la lista de dispositivos y veremos las características de este (nombre, capacidad, versión de software, número de serie y número de teléfono). Si hacemos click encima del número de serie, el contenido [...]

Read more