Core Data su iPhone (Prima Parte)

      Nessun commento su Core Data su iPhone (Prima Parte)

Ciao a tutti oggi vorrei introdurre un nuovo argomento per quanto riguarda la programmazione Objective-c .

Prima di iniziare con un tutorial pratico mi sembra opportuno fare una piccola introduzione.

Core data è un framework di cocoa che ha il compito di gestire i dati(xml sql e anche file binari) .

Non voglio annoiarvi con tanta teoria vi mostrerò un esempio pratico cercando di farvi capire il più possibile l’importanza e la potenza di questo framework .

Iniziamo subito con la creazione di un nuovo progetto e come template utilizzeremo navigation based application facciamo un click su next come nome inseriamo Core e spuntiamo il flag use core Data

Andiamo sul file Core.xcdatamodeld

Come possiamo notare notare sotto Entities Abbiamo solo un oggetto chiamato event , se lo sezioniamo sulla nostra destra possiamo notare varie sezioni tra cui attributes relationships and fetch properties(in una prossima lezione chiariremo tutti questi concetti non abbiate paura se tutto questo può sembrare un po ostico)

Dunque entity ha solo un attributo chiamato timeStamp , se ci facciamo sopra un click possiamo selezionare il tipo di dato che ci serve ma in questo tutorial rimaniamo quello di default cioè data .

Quindi rechiamo sul file RootViewController.m e andiamo a modificare il metodo

– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

Dunque scriviamo questo codice :

[code lang=”objc”]</p>
<p>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath</p>
<p>{</p>
<p>static NSString *CellIdentifier = @\”Cell\”;</p>
<p>UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];</p>
<p>if (cell == nil) {</p>
<p>cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];</p>
<p>}</p>
<p>[self configureCell:cell atIndexPath:indexPath];</p>
<p>NSManagedObject *managed=[self.fetchedResultsController objectAtIndexPath:indexPath];</p>
<p>cell.textLabel.text=[[managed valueForKey:@\”timeStamp\”]description];</p>
<p>return cell;</p>
<p>}</p>
<p>[/code]

NSManagedObject *managed=[self.fetchedResultsController objectAtIndexPath:indexPath];

Restituisce l’oggetto a seconda dell’indice

cell.textLabel.text=[[managed valueForKey:@”timeStamp”]description];

assegniamo alla cella (o riga) il valore che ha in quel momento timeStamp (l’anno il mese il giorno e l’orario)

Download Progetto Link