Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Creacion de aplicaciones para iPhone con XCode 4 [Preguntas]

Hola... hace unos meses que me he puesto a estudiar Objective-C y Xcode (v.4) y estoy tratando de crear mi propia aplicación pero tengo varias dudas. Primero, mi aplicación debe tener mucha información y ésta la quiero ir mostrando al presionar un botón. Por ejemplo, información relacionada con una ciudad y al presionar el botón, que muestre la información de otra ciudad. Por el momento se me ha ocurrido ingresar toda la información en un arreglo (NSMutableArray), pero quisiera saber si existe alguna forma más eficiente. Muchas Gracias por todo

15 Respuestas

0voto

Peter Puntos289420
Es muy poca información para entender el funcionamiento completo de tu aplicación. Lo cierto es que puedes hacer lo mismo de diferente maneras y puede ser que te convenga hacer una parte de una y otra de otra, pero para ello si es necesario saber mas a detalle todo lo que quieres hacer, porque solo pasar de una pantalla a otra puede ser de muchas formas y todas son correctas. Entonces porfa explica a fondo y a detalle las cosas para así aconsejarte mejor. Saludos y bienvenido al sitio.

0voto

Ponyo Blue Puntos1880
Muchas gracias Peter por responderme... Te cuento: mi idea es que se muestre la descripcion de una ciudad distinta cada dia. Se me ocurrió que podía obtener la fecha y según el dia ( 1 a 28/30/31) mostrar una u otra ciudad. Para comenzar las pruebas, y como sería muy lento esperar a que pase cada día, lo que hice fue crear una funcion que calcule cada segundo. Según el segundo, cambia la descripción: En el archivo ViewController.m escribí esto: [PHP]-(IBAction)Cambia{ NSDateComponents *componente = [[NSCalendar currentCalendar] components:NSSecondCalendarUnit fromDate:[NSDate date]]; NSInteger segundo = [componente second]; NSString *segundoTxt = [NSString stringWithFormat @"%d", segundo]; if (segundo>9) { numero = [segundoTxt substringFromIndex:1]; }else { numero = segundoTxt; } // Agregar texto int i; i = [numero intValue]; NSMutableArray *arreglo = [[NSMutableArray alloc] initWithCapacity:10]; [arreglo addObject @"Sao Paulo..."]; [arreglo addObject @"Buenos Aires..."]; [arreglo addObject @"Santiago..."]; [arreglo addObject @"Madrid..."]; [arreglo addObject @"Londres... "]; [arreglo addObject @"Montevideo... "]; [arreglo addObject @"Los Angeles... "]; [arreglo addObject @"Nueva York... "]; [arreglo addObject @"Pucón..."]; [arreglo addObject @"Boise..."]; NSLog(@"%@", [arreglo objectAtIndex:i]); label.text = [arreglo objectAtIndex:i]; }[/PHP] En este ejemplo sólo puse 10 ciudades, pero quiero poner muchas, muchas más, y por eso quería saber si manejar los datos dentro de un arreglo es eficiente o se debe hacer de otra forma. Tengo también otra duda... Me gustaría que al abrir la aplicación se muestre la ciudad que corresponde al dia y por eso supuse que debía copiar la función en el (void)viewDidLoad ... pero no creo que "copiar" toda la funcion nuevamente sea eficiente. Supongo que debe haber otra forma, algo así como crear funciones que se puedan llamar dentro de otras. ¿Existe algo así? Gracias de nuevo por tu tiempo.

0voto

markfree Puntos4510
Hola, Primera pregunta: El tema del NSMutableArray es correcto, pero igual no seri la forma mas optima. Normalmente se utilizan archivos .plist, que dentro de estos se oganizan con diccionarios y arrays. Luego desde codigo accedes al archivo .plist y haces un array para trabajar con el. Lo llamarias asin y luego haces el array. Es util por que el .plist lo puedes tener en local o en un servidor y manejarlo como quieras. [PHP]NSString *path = [[NSBundle mainBundle] pathForResource:@"lasdo" ofType:@"plist"]; //inicializamos nuestra propiedad arrayConDOEnGrupos con el //contenido de ese fichero arrayConDOEnGrupos = [[NSArray alloc] initWithContentsOfFile:path];[/PHP] Por lo que hace a volver a copiar el código en viewdidload() no hace falta, puedes llamar la función Cambia() desde el mismo. ejemplo: [PHP]-(void)Cambia:{ // hacer lo que se quiera } [self Cambia] // para llamar desde cualquier lado o función!![/PHP]

0voto

Ponyo Blue Puntos1880
Gracias markfree, me ayudó mucho tu explicación

0voto

Ponyo Blue Puntos1880
Yo nuevamente.... He creado un archivo test.plist seleccionando New File... -> Property List. En la ventana que se abrió, seleccioné Add Row. A la fila que se agregó le seleccioné el Tipo: Array. A dicho arreglo le agregué datos. Agregué el código en el ViewController.m incluyendo un NSLog(@"mi array: %@", [miArray objectAtIndex:0]); Pero al ejecutar la aplicación, en la consola me sale: mi array: (null) No entiendo dónde he cometido el error. Ayuda de nuevo por favor!!!!!! Y Gracias PDTA: He bajado un archivo .plist de un ejemplo que encontré en internet. Lo agregué a mi aplicación, le modifiqué sus datos y me funciona super bien, pero no logro hacer lo mismo creando mis propios archivos .plist desde el mismo Xcode (???)

0voto

markfree Puntos4510
Buenos días. Para ver el contenido del plis tienes que poner este código [PHP]NSString *path = [[NSBundle mainBundle] pathForResource:@"nombrearchivo" ofType:@"plist"]; //inicializamos nuestra propiedad array con el //contenido de ese fichero array = [[NSArray alloc] initWithContentsOfFile:path];[/PHP]

0voto

Peter Puntos289420
¿Solucionaste el problema Ponyo?

0voto

Ponyo Blue Puntos1880
Gracias por la preocupación, Peter. Me tomé una semanita libre, pero ya estoy de regreso. Finalmente estoy usando la opción de agregar un archivo .plist (ya creado en otro ejemplo) y modificarlo en el Xcode. Si creo el archivo directamente en Xcode, sus datos no son reconocidos..¿? Pero la primera opción funciona bien.

0voto

Peter Puntos289420
Si lo agregas de otro ejemplo o lo creas tu es lo mismo, son reconocidos ambos, entonces si no te funciona al tu crearlo, algo haces mal en el proceso de creación. Saludos.

0voto

Ponyo Blue Puntos1880
Si... seguramente estoy haciendo algo mal... el problema es que no sé qué puede ser. He seguido paso a paso los ejemplos para crear el archivo plist desde Xcode y no me funciona.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...