2010-02-08 3 views
-1

Je sauve des données les entrées utilisateur dans un fichier de données en utilisant SQLite, je suis la date d'épargne, le temps, la lecture, et une note, comme suit:sections référencement de UITableView à partir des données de base:

//Create a Reading Object 
Readings *readingObj = [[Readings alloc] initWithPrimaryKey:0]; 
readingObj.date = date.text; 
readingObj.time = time.text; 
readingObj.reading = reading.text; 
readingObj.note = note.text; 

//Add the object //This is where I add the inputs to the SQL data file 
[appDelegate addReading:readingObj]; 

Mon Le problème ou la question est: Je veux trier les données dans un uitableview avec la date comme en-tête de section et d'autres entrées sous la section dans une cellule. Les dates représentent le nombre de sections que j'aurais.

C'est ce que j'ai pour l'instant:

- (NSInteger)numberOfSectionsInTableView:(UITableVie w *)tableView { 
return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
return [appDelegate.readingsArray count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

HistoryCell *cell = (HistoryCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 
cell = [[[HistoryCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
} 

//Get the object from the array. 
Readings *readingObj = [appDelegate.readingsArray objectAtIndex:indexPath.row]; 

[cell setTodo:readingObj]; 
return cell; 
} 

readingsArray est le tableau où je charge toutes les données à; il a toutes les données:

NSInteger primaryKey = sqlite3_column_int(selectstmt, 0); 
Readings *readingObj = [[Readings alloc] initWithPrimaryKey:primaryKey]; 
readingObj.date = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]; 
////change to int 
readingObj.time = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 2)]; 
//// 
readingObj.reading = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 3)]; 
//// 
readingObj.note = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 4)]; 

[appDelegate.readingsArray addObject:readingObj]; 
[readingObj release]; 

Comment puis-je avoir plusieurs sections en fonction des dates, quand je ne dispose que d'un tableau, ce qui readingsArray qui a toutes les données. ne pouvait pas faire un tableau de dates parce que c'était déroutant pour moi. Les sections de dates auraient plusieurs lectures pendant ce jour.

Des suggestions ou des idées? Je peux fournir plus de code ou d'explication sur mon code si nécessaire.

Répondre

0

Dans le titre, vous avez mentionné une fois les données de base. Donc, vous avez probablement un NSFetchedResultsController dans votre délégué qui récupère tous les objets appropriés à partir des données de base! Vous devez ensuite définir une propriété NSFetchedResultsController dans votre classe et la définir sur les délégués fetchedresultscontroller. Vous pouvez donc utiliser les méthodes de délégué fetchedresultscontroller très à l'aise. Ou vous venez d'initialiser un autre resultscontroller récupéré. Pourquoi définissez-vous les résultats recherchésc. pas directement dans votre classe tableviewcontroller?

Questions connexes