Подмножества NSArray и сортировка из динамического parentArray - PullRequest
0 голосов
/ 06 февраля 2012

Я столкнулся с большим вопросом о подходе, чтобы питать представление графика.

Я получаю массивы с помощью coredata.

Родитель-родитель <--- >> Отношение сущности входа существует.

Мне нужно объединить результаты родительского отношения <- >> Entry в массив, отсортированный по NSDate, это довольно просто, у родителя может быть несколько записей на основе timeStamp (NSDate) для его добавления.

Я использую fetchRequest со следующим:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY forParent.entries == %@",selectedTrack]

Используя этот предикат, я могу вынести записи Parent нескольких родителей в разные массивы.

Но я бы хотел получить комбинированный результат, отсортированный по меткам времени

Например,

NSArray Result_ParentA = [entries sortedBy timeStamp]; {A0 ,A1, A2, A3,     A5}   (5)
NSArray Result_ParentB = [entries sortedBy TimeStamp]; {B0, B1, B2, B3, B4}       (5)
NSArray Result_ParentC = [entries sortedBy TimeStamp]; {C0, C1, C2, C3, C4  C5 }  (6)

Здесь нужно отметить два момента, 1- Array Result_ParentA не имеет entryObject на дату «4-е», а также, массив B не имеет записи на «5-е», давайте предположим, что эти цифры являются их NSDate of добавлением.

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

CombinedSortedArray objectAtIndex:0] = Array{A0, B0, C0}  CountRemains 3 
CombinedSortedArray objectAtIndex:1] = Array{A1, B1, C1}  Count remains 3
CombinedSortedArray objectAtIndex:4] = Array{0.0, B4, C4}
CombinedSortedArray objectAtIndex:5] = Array{A5, 0.0, C5}
//Count of all the subset Arrays remains 3  which is equal to the count of Parents! Only the difference being that a nil result is replaced by 0.0!

2- Все это сложнее, зная, что Parent - это динамическое число, я не могу знать, сколько родителей видно на графике.

Возможно, мне следует изменить свой запрос на выборку, чтобы получить отсортированный массив, и сделать некоторые незначительные изменения после его получения ..?

Теперь я не в курсе, любая помощь приветствуется.

1 Ответ

0 голосов
/ 06 февраля 2012

Вы уже получаете отсортированный массив с вашим NSSortDescriptor (хотя вам нужно установить его как дескриптор сортировки запроса на выборку). Все, что вы сделали, сказав «НЕТ» параметру «по возрастанию», - это то, что вы вернете их от наименьшего к наименьшему, а не от наименьшего к наибольшему. И NSSortDescriptor, и NSPredicate являются необязательными параметрами. Если вы хотите вернуть все объекты CoreData, просто удалите NSPredicate.

...