ограничить размер UITableView - PullRequest
0 голосов
/ 25 июля 2011

Я выбираю два вида объектов в Базовых данных, некоторые девушки и некоторые мальчики.У каждого из них есть размер и дата рождения.

Я хочу выбрать максимум 50 человек и никогда не более 10 девочек.Например, если в моей базе данных есть 15 девочек и 5 мальчиков, я хочу, чтобы tableView печатал 5 мальчиков и 10 девочек (сортируя их по дате рождения).

Я различаю мальчиков и девочек сboolean: sexe.

Вы знаете, как лучше всего это сделать?

Я могу ограничить общую сумму здесь:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    id <NSFetchedResultsSectionInfo> sectionInfo = [[myFetchedResultsController sections] objectAtIndex:section];

    if ([sectionInfo numberOfObjects] > 50) {
        return 50;
    } else
    {
        return [sectionInfo numberOfObjects];
    }
}

, но я не могуограничить количество девушек в моем UITableView.

Спасибо, Нильс

Ответы [ 2 ]

0 голосов
/ 25 июля 2011

Интересно (и я не буду комментировать сексизм).

Не вижу способа написать предикат, ограничивающий половину поиска.Предполагая, что база данных не сильно меняется во время представления таблицы, одним из методов может быть предварительный выбор десяти девочек, помечая их переходным свойством includeGirl, а затем ищите составной предикат Boy ИЛИ includeGirl со значением

[myBoysFetchedResultsController.fetchRequest setFetchLimit:50];
0 голосов
/ 25 июля 2011

Наверху я могу подумать о создании источника данных после того, как вы прочитаете coredata. Добавьте объекты в источник данных, используя эту логику псевдокода. Заменить его на переменные вашей программы должно быть довольно просто.

int num_of_girls = 0;
for(i=0;i<50 && data!=nil;i++)
{
    // Fetch object from core data at index i
    if(data==girl && num_of_girls <15)
    {
        // Add to data source the data pertaining to girl
        num_of_girls++;
        i++;
        continue
    }
    // Add to data source as this is pertaining to boy
    i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...