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 moreObtener 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 moreTrabajar 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 moreScript 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 moreComo 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 moreLlamadas 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 moreScript 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 moreEsquinas 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 moreAutentificació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 moreObtener 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



