Para empezar debemos encontrar la ruta en la que estas entradas se almacenan en el registro de Windows. Podemos encontrarla mediante la herramienta “Registry Editor” (en una ventana de comandos escribir: regedit)
Función con tipos genericos
La comodidad de usar tipos genéricos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
private T ParseToNumber<T>(string value, Type type) { if (string.IsNullOrEmpty(value)) { return (T)Convert.ChangeType(0, typeof(T)); } if (type == typeof(short)) { return (T)Convert.ChangeType(short.Parse(value), typeof(T)); } if (type == typeof(ulong)) { return (T)Convert.ChangeType(ulong.Parse(value), typeof(T)); } if (type == typeof(ushort)) { return (T)Convert.ChangeType(ushort.Parse(value), typeof(T)); } return (T)Convert.ChangeType(0, typeof(T)); } |
La llamada:
1 |
var myNumber= this.ParseToNumber<short>("1", typeof(short)), |
Eliminar Proyectos Recientes de la Pagina de Inicio de Visual Studio
A medida que vamos abriendo proyectos en Visual Studio, estos se van memorizando para ser accesibles desde la “Start Page”.
Podemos eliminar los que no deseemos posicionando el botón encima de su nombre, clic derecho y eliminar; pero si lo que queremos es borrar todas las entradas de una vez podemos crear una acción que lo haga por nosotros.
Deshabilitar items de una lista en Windows
Alguna vez puede surgir la necesidad de que, dada una lista cuyos items son seleccionables, sea necesario deshabilitar algunos para que el usuario no pueda seleccionarlos.
Vamos a partir de una ViewModel que contiene una Lista de elementos de tipo “Movie”, cuyos atributos son Título y un bool Alquilado. Si la película esta alquilada no debe poder seleccionarse, en caso contrario debe estar habilitado.
Constantes en Objective-C
¿Por qué no usar macros?
Usar #define como método para fijar constantes no es una muy buena practica. Si bien es cierto que se puede hacer resulta muy poco útil a la hora de hacer debug, ya que no podremos saber cuál es su valor.
Mejor usemos const. Si quieres que esta constante sea publica ubícala en el archivo .h, si por el contrario quieres que sea privada en el archivo .m
1 |
NSString *const MI_URL = @"http://www.codigoedulis.es"; |
Progress Ring en Windows y Windows Phone
Mostrar un “Progress Ring” al cargar datos advierte al usuario de que la aplicación esta “haciendo cosas”, y así no tiene la sensación de que se ha quedado parada.
En este caso vamos a añadir un Progress Ring con un mensaje de la siguiente manera:
1 2 3 4 5 6 |
<ProgressRing IsActive="{Binding LoadingResultsProgressRing,Mode=TwoWay}" Visibility="{Binding LoadingResultsProgressRing,Mode=TwoWay, Converter={StaticResource BoolToVisibility}}" Style="{StaticResource ProgressRingStyle}" /> <TextBlock Text="?Cargando Datos" x:Uid="DataLoading" Style="{StaticResource BS_TextBlockBlueTitle}"/> |
Formatear código para xCode
Plugin idóneo para trabajar en equipo y que el estilo del código sea para todos el mismo. Parecido a los plugins StyleCop y Resharper. Tenemos para xCode: Clang Format, os lo podéis descargar desde la siguiente dirección: https://github.com/travisjeffery/ClangFormat-Xcode.
Asynchronous WebService API Request en iOS
Hoy vamos a hacer una petición a la API de OMDb. Para ello yo he optado por usar un SearchBar por lo que lanzo la petición desde el método delegado correspondiente:
– (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
Primero nuestras constantes:
1 2 3 |
#define MAX_TIMEOUT 10 #define ERROR_TIMEOUT @"timed out" #define API_URL @"http://www.omdbapi.com/?plot=short&r=json&s=" |
Creamos nuestra petición con la dirección: http://www.omdbapi.com/?s=her
1 2 3 4 |
NSString *title = searchBar.text; NSString *url = [NSString stringWithFormat:@"%@%@",API_URL,title]; NSURL *restURL = [NSURL URLWithString:url]; NSURLRequest *request = [NSURLRequest requestWithURL:restURL cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:MAX_TIMEOUT]; |
Concatenar cadenas en Objective-C
Constructor parametrizado en Objective-C
¿Cómo implementar un constructor parametrizado en Objective-C?
1 2 3 4 5 6 7 8 |
-(id) initWithTitle:(NSString *)title AndDescription:(NSString *)desc{ self = [super init]; if (self) { self.title = title; self.desc = desc; } return self; } |
¿Y la llamada?
1 |
[[Movies alloc]initWithTitle:@"Her" AndDescription:@"man and OS love"]; |