UItableView ссылается на разделы из основных данных: - PullRequest
0 голосов
/ 08 февраля 2010

Я сохраняю некоторые данные, которые пользователь вводит в файл данных, используя SQLITE, я сохраняю дату, время, чтение и заметку следующим образом:

//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];

Моя проблема или вопрос: я хочу отсортировать данные в uitableview с датой в качестве заголовка раздела и других входных данных в разделе в ячейке. Даты представляют количество секций, которые у меня были бы.

Вот что у меня сейчас:

- (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 - массив, в который я загружаю все данные; у него есть все данные:

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];

Как я могу иметь несколько разделов на основе дат, когда у меня есть только один массив, который readingsArray, который имеет все данные. не могу создать массив дат, потому что это сбивает меня с толку. Разделы дат будут иметь несколько чтений в течение этого дня.

Есть предложения или мысли? Я могу предоставить больше кода или объяснения о моем коде, если это необходимо.

1 Ответ

0 голосов
/ 10 февраля 2010

В названии вы упомянули когда-то основные данные. Таким образом, у вас, вероятно, есть NSFetchedResultsController в вашем делегате, который выбирает все соответствующие объекты из основных данных! Затем вы должны установить в своем классе свойство NSFetchedResultsController и установить для него делегаты fetchedresultscontroller, чтобы вы могли очень удобно использовать методы делегирования fetchedresultscontroller. Или вы просто инициализируете другой контроллер fetchedresults. Почему вы устанавливаете fetchedresultsc. не прямо в вашем классе tableviewcontroller?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...