Mostrando entradas con la etiqueta objective-c. Mostrar todas las entradas
Mostrando entradas con la etiqueta objective-c. Mostrar todas las entradas

Cómo saber si una UIView está visible

Si necesitás saber si podés liberar una view podés chequear si tiene una superview:
if (myView.superview){
 // podés hacer algo con la vista porque se supone que está en la jerarquía
}
else {
 // myView no está en la jerarquía de vistas
}

NSData to NSString

En Objective C para castear un objeto NSData a un objeto NSString se realiza de dos maneras:

Si el objeto no termina en null hay que usar el método -initWithData:encoding:
    NSString* newStr = [[NSString alloc] initWithData:data
                                              encoding:NSUTF8StringEncoding];

Si el objeto termina en null hay que usar el método -stringWithUTF8String para eliminar el \0 al final de la cadena.
    NSString* newStr = [NSString stringWithUTF8String:[data bytes]];


FTS y SOUNDEX de SQLite en iOS

Agregar tu propia versión de SQLite para tu proyecto iOS es fácil.

1. Descargá desde http://www.sqlite.org/ la última versión de sqlite almagamation.

2. Descomprimilo en tu computadora y agregá a tu proyecto iOS los archivos sqlite.c y sqlite.h.

3. Abrí el archivo sqlite.h y agregá:
# define SQLITE_SOUNDEX 1
# define SQLITE_ENABLE_FTS3
4. Compilá tu proyecto ;)

Ojo! No hay que tener agregada la lib sqlite de xcode, sino pincha. Así que si ya la tenías linkeada en tu proyecto quitala.

Programador PHP Argentina

Hola.

Soy un programador freelance de Argentina que se dedica al desarrollo de aplicaciones web.

Desde hace más de 7 años que me dedico al desarrollo de aplicaciones PHP. Empecé con PHP "puro y duro" por así decirlo.

Luego estuve viendo los diferentes frameworks MVP del mercado de los cuales los que más me gustaron son Zend y Symphony.

Y finalmente comencé a trabajar con los diferentes CMS que hay para PHP para no "reinventar la rueda" :)

Trabajé con Wordpress y Drupal a nivel CMS. Y en cuanto a tiendas online con Magento y Prestashop.

Ahora mismo, además de dedicarme al desarrollo de aplicaciones web me encuentro trabajando en el desarrollo de aplicaciones móviles. Principalmente me dedico a iOS con Objective, pero también (dependiendo del proyecto) trabajo con Android (desde 2.2 en adelante) y con jQuery Mobile (para el caso de web applications móviles).

Si tenés alguna duda o querés un presupuesto contactame acá que hoy mismo me pongo en contacto con vos.

Could not instantiate class named NSLayoutConstraint

Por defecto cuando se crea un proyecto nuevo en xcode 4.5 cada XIB creado utiliza autolayout lo cual es una propiedad de iOS 6.

Entonces al correr el proyecto con una versión de iOS < 6 explota.

Las posibles soluciones son:
  • O bien correr el proyecto con iOS >= 6.0
  • O bien modificar poner la propiedad autolayout de cada XIB a false.
Para poner la propiedad autolayout a false, seleccionar el XIB y en el File Inspector deseleccionarla.


No provisioned iOS devices are available with a compatible iOS version.

Si ocurre este problema al intentar hacer correr una aplicación desde xcode en el un terminal iOS es probable que se deba a lo siguiente.

Por defecto xcode 4 crea aplicaciones con soporte sólo para armv7. Si tu terminal tiene un procesador armv6 ahí está el problema.

Para solucionarlo hay que agregar armv6 a la lista de arquitecturas soportadas. Esto se hace agregando una nueva entrada en el archivo ProjectName-Info.plist




Cómo utilizar valores hexadecimales para definir colores en Objective C

Objective C no tiene una función para definir un color a partir de un valor hexadecimal. Y normalmente esto es una necesidad :)

Pero sí tiene una función para definir un color a partir de valores RGB (Red, Green, Blue). Para ello se utliza la siguiente función:

[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];

A partir de ello se puede crear una macro e incluirla en algún header para que esté disponible:

#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

Luego se puede utilizar esta macro de la siguiente manera:

self.view.backgroundColor = UIColorFromRGB(0xCECECE);

iOS URL decode | Objective C

Para realizar un URLDecode en iOS hay que realizar dos pasos:
  • Reemplazar los caracteres "+" por " "
  • Reemplazar los %
Se puede realizar de la siguiente manera.

 
 NSString *decoded = [[message stringByReplacingOccurrencesOfString:@"+" withString:@" "] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

Cómo reproducir un video en loop en Objective C (iOS)

Sólo hay que agregar la siguiente línea:

 
// se crea el controller
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:url];

// se le indica para que reproduzca el video en loop
mp.repeatMode = MPMovieRepeatModeOne;

Cómo reproducir video a pantalla completa en iOS 5

1. Crear un proyecto en XCode, Single View Application.

2. En el .h del ViewController crear la siguiente propiedad de tipo strong.

@property (nonatomic, retain) MPMoviePlayerController *player;

3. Poner el siguiente código en el método viewDidLoad del .h del ViewController:
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]];
    
    // Do any additional setup after loading the view from its nib.
    
    MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:url];
    // the frame is the size of the video on the view
    mp.controlStyle = MPMovieControlStyleNone;
    mp.repeatMode = MPMovieRepeatModeOne;
    mp.view.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height);
    self.player = mp;
    [self.view addSubview:self.player.view];
    [self.player prepareToPlay];

    // tell the movie to play
    [self.player play];
}

Cómo eliminar acentos en una cadena en Objective C

Para eliminar los acentos en una cadena con Objective C se puede realizar con el siguiente código:

NSString *myString = @"úlceras";

NSData *stringData = [myString dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion: YES];

NSString *cleanString = [[[NSString alloc] initWithData: stringData encoding: NSASCIIStringEncoding] autorelease];