2012-08-01 7 views

Respuesta

5

Utilice Core data y NSFetchedResultsController, a través de los métodos delegados del controlador tableview populate tableview desde NSFetchedResultsController instance .. Refleja la eliminación, adición y cualquier tipo de actualizaciones en la base de datos automotor en tableview.

0

Puede usar la biblioteca ASIHTTPRequest para obtener datos de su servidor. Puede encontrar información al respecto en http://allseeing-i.com/ASIHTTPRequest/

Puede usar http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-tableview-in-iphone/ este enlace para obtener más información acerca de la tabla.

En el tutorial del enlace, debe solicitar sus datos en el método viewDidload.

- (void)viewDidLoad { 

    // Request your data on this line. 
    /*NSArray *array = [[NSArray alloc]  initWithObjects:@"Sleepy",@"Sneezy",@"Bashful",@"Happy",@"Doc", 
         @"Grmpy",@"Dopey",@"Thorin",@"Dorin",@"Nori", 
         @"Ori",@"Balin",@"Dwalin",@"Fili",@"Kili",@"Oin",             
         @"Gloin",@"Bifur",@"Bofur",@"Bombur",nil ];*/ 

    self.listData = array; 
    [array release]; 
    [super viewDidLoad]; 
} 

Todos estos son simplemente uso. Debe experimentar con más ejemplos para usar una situación más compleja. Agregaré más código para un tutorial para obtener datos del servidor y mostrarlos en TableView.

2

Realmente NSFetchedResultsController es un poco difícil de entender.

Debe intentar manejar los datos de UITableView por su cuenta. Echar un vistazo a UITableViewDelegate protocol

Aquí hay algunos pasos que debe seguir:

1) Crear una clase que herede UITableViewDelegate y UITableViewDataSource

@interface YourTableViewController: UITableViewController<UITableViewDelegate,UITableViewDataSource> 

2) crear una matriz que contendrá los datos

@property (nonatomic,retain) NSMutableArray *data; 

3) poner en práctica este método:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
     DataObject *d=[data objectAtIndex:indexPath.row]; // selected data, now you can handle it   
    } 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
     return data.count; 
    } 

    - (UITableViewCell *)tableView:(UITableView *)mtableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     NSString *[email protected]"CatalogCell";  
     UITableViewCell *cell=(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:ident];  
     if (cell==nil) {   
      cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ident] autorelease];   
     } 
     DataObject *d=[data objectAtIndex:indexPath.row]; 
     [cell.textLabel setText:d.someField];  
    } 

4) Seleccione algún método (NSURLConnection, ASIHTTPRequest (lo siento, sólo 2 hipervínculos permitidos para mí) o de otro tipo) para obtener datos de servidor

-(void) parseData:(NSString *) d { 
    NSArray * parsedData=[self someMethodToParseData:d]; 
    [data setArray:parsedData]; 
    [tableView reloadData];  
} 
3

Dependiendo del nivel de complejidad de su modelo y en qué tipo de política de almacenamiento en caché necesita, existen diferentes formas de conectar una vista de tabla a una fuente de datos remota. Aquí hay muchas cosas que decir, pero lo mejor para ti, si eres un principiante, es echar un vistazo a algunos ejemplos en Internet.

Existen "pocos" proyectos de código abierto para la comunicación de red que ofrecen buenos modos y buenos ejemplos (incluido el código fuente) para tratar aplicaciones basadas en servidor. Cito los dos prefiero:

  • AFNetworking: hay fuentes ejemplo con esta biblioteca y UITableViewController que pueden adaptarse a su necesidad
  • RestKit: esto resultará útil si desea asignar y persistir los datos devueltos por el servidor al modelo local. Sin embargo, esto puede requerir un poco más de tiempo de aprendizaje.

Pero recuerdo que de todas formas necesitas saber los fundamentos de un UITableView y los protocolos relacionados: UITableViewDelegate y UITableViewDataSource. La documentación está bien, pero es posible que desee echarle un vistazo al WWDC 2011 podcast sobre las vistas de tabla.

Por otra parte, si necesita persistencia de datos también, debe comenzar a buscar en Core Data y NSFetchedResultControllers, como lo hicieron Illis y Bogdan, pero las cosas empezarán a ser un poco más complicadas.

Cuestiones relacionadas