Posts Tagged ‘ iphone

iPhone: Create Singleton instance

A continuación veremos como crear una clase singleton en objective-c.

Un singleton es una clase con una única instancia. Puede servirnos para guardar variables globales de la aplicación.

MySingletonInstance.h

#import <Foundation/Foundation.h>
@interface MySingletonInstance : NSObject{
}
@property (nonatomic,retain) NSString *myString;
@property (nonatomic,retain) NSMutableArray *myArray;
+ (MySingletonInstance *) instance;
@end

MySingletonInstance.m

#import "MySharedSingleton.h"
@implementation MySharedSingleton
@synthesize myArray, myString;

static MySingletonInstance *sharedSingletonInstance = nil;

+ (FilterParams *) instance {
    @synchronized(self) {
        if(sharedSingletonInstance == nil) sharedSingletonInstance = [[self alloc] init];
    }
    return sharedSingletonInstance;
}

+ (id)allocWithZone:(NSZone *)zone {
    @synchronized(self) {
        if(sharedSingletonInstance == nil) {
            sharedSingletonInstance = [super allocWithZone:zone];
            return sharedSingletonInstance;
        }
    }
    return nil;
}

- (id) copyWithZone:(NSZone *)zone {
    return self;
}

- (id) retain {
    return self;
}

- (unsigned) retainCount {
    return UINT_MAX;
}

- (void) dealloc {
    [super dealloc];
    [myArray release];
    [myString release];
}

- (id) autorelease {
    return self;
}

Como llamar al singleton desde otra clase

MySingletonInstance *msi = [MySingletonInstance instance];
msi.myArray = self.myOtherArray;
msi.myString = self.myOtherString;

iPhone: Check if string contains a substring

Para saber si una cadena contiene otra cadena o substring, sólo debemos usar la siguiente función:

iPhone: show UIAlertView

Esta función nos muestra un alert view.


Para usarla debemos pasarle un titulo y un mensaje.


Si queremos capturar el click de los botones, debemos agregar nuestro delegate a la clase y crear la siguiente función:
El delegate:

La función:

iPhone: Open url

Sentencias sencillas pero muy útiles.

Abrir una url en safari:

Abrir google maps en una dirección:

Abrir Mail:

Realizar llamada:

Escribir sms:

iPhone: Embed Youtube Video

Gracias a esta función que podemos ver más abajo, podemos insertar un vídeo de youtube en nuestra aplicación. Lo único que necesitamos es pasarle la url del vídeo en cuestión, y el frame dónde queremos que se coloque.

Aquí tenemos la función:

Y aquí un ejemplo de llamada:

iPhone: Simple Animations

A continuación dejo unas líneas en forma de tip, para crear una simple animación en este caso un alpha, aunque podría ser cualquier propiedad del objeto.

Damos por supuesto que miObjeto.alpha antes de empezar la animación lo hemos puesto a 0.

iPhone: NSLog frame

Muchas veces necesitamos pintar un frame de un objeto, ya sea un button, un view, un scrollview, etc…

Para debugarlo existe la función NSStringFromCGRect, que nos devuelve el frame del objeto que le pasamos como un string.

Por ejemplo, para pintar el frame de un view haríamos:

iPhone: Get current language

Este es un tip muy útil cuando queremos hacer una aplicación multilanguage, ya que gracias a estas líneas de código podemos saber que idioma se está usando en el dispositivo.

iPhone: Which XML Parser use?

Hay un montón de opciones para analizar XML’s en el iPhone.

El mismo SDK del iPhone trae dos librerías distintas para poder escoger, pero además existen librerías de terceros disponibles, como podrían ser TBXML, TouchXML, KissXML, TinyXML y GDataXML.

Descripción de las librerías

A continuación mostraremos una breve descripción de estas librerías:

  • NSXMLParser es un parseador SAX incluido por defecto con el SDK iPhone. Está escrito en Objective-C y es muy sencillo de usar, pero quizás no es tan fácil como el modelo DOM.
  • Leer mas

iPhone: Unique NSMutableArray

Con el siguiente código podemos eliminar los elementos repetidos en función de unos de los atributos de un NSMutableArray