Today it’s My Birthday, this is my desk at office… Thanks all my partners @nearsoft
Author Archives: Guerrix
Simple Progress HUD – iPhone
SimpleProgressHUD es un HUD muy sencillo y ligero de para iOS.
Instalación
- Incluye la carpeta de ProgressHUD en tu proyecto.
- Importa el header de ProgressHUD.h donde quiera que lo necesites.
Uso
Ver el proyecto de ejemplo en Xcode /Demo
SimpleProgressHUD se crea como un singleton, por lo que no tiene que ser instanciado de manera explicita, se puede llamar de manera directa [ProgressHUD defaultHUD], utilizando para mostrar el HUD lo siguiente:
- showInView:(UIView*)view;
Y para descartarlo:
-(void) hideActivityIndicator;
Si estas usando ARC en tu proyecto basta con eliminar el metodo -dealloc en la Clase de ProgressHUD.
Puedes obtener una copia del codigo en GitHub.
Nota: SimpleProgressHUD esta inspirado en Sam Vermette’s SVProgressHUD para iOS.
OS X Mountain Lion Sneak Peek
Unable to find IPv4 address of – Configuration Failed | MAMP
Usando Mac OS X Lion y MAMP 2.0.3 el servidor Apache no arrancaba … cuando abrí la”apache_error.log” encontre este error:
[Date] [alert] (EAI 8)nodename nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of “myMacbookPro”Configuration Failed
La forma en que puedo solucionar esto, fue la siguiente:
- Asegúrese de que tiene cerraste completamente MAMP .
- Abra el archivo httpd.conf con un editor de texto – “/Applications/MAMP/conf/apache/httpd.conf”
- Buscar la siguiente línea:
LoadModule unique_id_module modules/mod_unique_id.so
- Añadir ”#” en la mendicidad de esa línea, de esta manera:
#LoadModule unique_id_module modules/mod_unique_id.so
- Abra MAMP otra vez y su Servidor Apache comenzará a funcionar con normalidad
Espero que ayude
Error opening terminal: xterm-256color
Recientemente tuve este problema con Mac OS Lion, pero la solución es muy simple, basta con:
- Haga clic en Terminal en la parte superior izquierda de la pantalla
- Elija Preferences
- Su tema actual debe ser seleccionado de manera predeterminada en la lista de temas.
- Haga clic en la pestaña Advanced en la parte superior derecha del cuadro de diálogo
- Bajo Declarar la Terminal como, elegir la opción “xterm-color”.
- Reinicie la Terminal, y sera todo.

Compiling
The bundle is invalid. The key CFBundleVersion in the info.plist must contain a higher version than that of the previously uploaded version.
Cuando yo estaba tratando de ”validar” mi aplicación (usando Xcode) para hacer una actualización de mi aplicación en iTunes Connect, por una razón desconocida que estaba recibiendo este mensaje de error:The key CFBundleVersion in the info.plist must contain a higher version than that of the previously uploaded version.
Si tienes el mismo problema, puede resolverlo de la siguiente manera:
- Abre el sitio de iTunes Connect, después click en Manage Your Applications > ”Tu App” > View Details (boton de la esquina izq.) > Binary Details.
- Allí podrás ver el “Bundle Version”, después todo lo que necesitas hacer es actualizar el Bundle Version de tu App.

Al principio supuse que el ”Bundle Version” para fines iTunesConnect era el que se puede ver en “Version Information”, pero parece que Apple utilizan datos diferentes para esos fines.
Espero haber sido de ayuda.
CFBundleShortVersionString no se actualiza siempre es 1.0 | Appcelerator Titanium
Usando iPhone SDK 1.8.x (Appcelerator Titanium) y por alguna razón desconocida el valor de CFBundleShortVersionString siempre se queda en 1,0 y eso me estaba deteniendo para actualizar mi aplicación, pero despues me tope con esta solución que resolver mi problema.
- Cuando hagas un build de tu aplicación dentro del directorio build->iphone esta el archivo info.plist, copialo a el directorio raíz del proyecto (donde reside Tiapp.xml).
- Edita el info.plist que acaba de copiar en el directorio raíz, cambiando manualmente el valor de CFBundleShortVersionString (paracualquier versión que necesitas).
- Guarde el archivo (el que esta en el directorio raíz) y dale build de nuevo al proyecto, el info.plist generado automáticamente tomará los datos en el archivo modificado.
Fuente: Q&A Appcelerator
Categories: Objective – C
Las categorías son una de las características más útiles de Objective-C. En esencia, una categoría le permite añadir métodos a una clase existente, sin que la subclasificación o necesidad de conocer cualquiera de los detalles de cómo se implementa.
Una categoría recoge las implementaciones de método en archivos separados. El programador puede colocar grupos de métodos relacionados en una categoría para que sean más legibles. En otras palabras, si deseas agregar un método a todas las instancias de NSString en tu aplicación, solo hay añadir una nueva categoría. No hay necesidad de una subclase personalizada.
Por ejemplo, voy a añadir dos métodos para un NSString. uno para determinar si el contenido es una URL y la otra para añadir un método de reverseString.
Se vería así:
- Crear un nuevo proyecto de XCode un “Command Line Tool”. Lo llamaré ExtendsNSString

- A continuación, cree una nueva clase Objective-C (lo voy a llamar a NSString_Extend ). Elimine todo el código en el archivo de cabecera (NSString_Extend.h) y ponemos el siguiente código:
#import <Cocoa/Cocoa.h> @interface NSString (Extends) - (BOOL) isURL; - (NSString *)reverseString; @end
es muy similar a una declaración de clase. La diferencia es que no hay una súper clase, y hay un nombre para la categoría entre paréntesis, el nombre puede ser el que quieras.
- Ahora elimine todo el código en el archivo de implementación ( NSString_Extend.m) y ponemos el siguiente código:
#import "NSString_Extend.h" @implementation NSString (Extends) - (BOOL) isURL { if ( [self hasPrefix:@"http://"] ) return YES; else return NO; } - (NSString *) reverseString { NSUInteger len = [self length]; NSMutableString *rtr=[NSMutableString stringWithCapacity:len]; // unichar buf[1]; while (len > (NSUInteger)0) { unichar uch = [self characterAtIndex:--len]; [rtr appendString:[NSString stringWithCharacters:&uch length:1]]; } return rtr; } @endA diferencia de las subclases, las categorías no se puede agregar variables de instancia. Puede, sin embargo, utilizar categorías para sustituir métodos existentes en las clases, pero debes hacerlo con mucho cuidado.
- Ahora usted puede utilizar estos métodos en cualquier NSString, vamos a cambiar el main.m, que se verá algo como lo siguiente:
#import <Foundation/Foundation.h> #import "NSString_Extend.h" int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // insert code here... NSString* string1 = @"http://pixar.com/"; NSString* string2 = @"Pixar"; if ( [string1 isURL] ) NSLog (@"string1 is a URL"); else NSLog (@"string1 is not a URL"); if ( [string2 isURL] ) NSLog (@"string2 is a URL"); else NSLog (@"string2 is not a URL"); NSString *test = [@"!A string to be reverted!" reverseString]; NSLog(@"%@", test); [pool drain]; return 0; }Cuando se realizan cambios en una clase con una categoría, esta afecta a todas las instancias de esa clase en toda la aplicación.
Puedes descargar el codigo de este tutorial Aqui
Fuente:
The only way to do great work is to love what you do
Quote
Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking, and don’t settle. As with all matters of the heart, you’ll know when you find it.
Steve Jobs




