Я столкнулся с большим вопросом о подходе, чтобы питать представление графика.
Я получаю массивы с помощью 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 - это динамическое число, я не могу знать, сколько родителей видно на графике.
Возможно, мне следует изменить свой запрос на выборку, чтобы получить отсортированный массив, и сделать некоторые незначительные изменения после его получения ..?
Теперь я не в курсе, любая помощь приветствуется.