Сортировка toMany Набор отношений в базовых данных

Использование Физика в Человеко-машинном взаимодействии для обеспечения альтернативной, понятной метафоры. Это объединилось жестами, и haptics, вероятно, приведет к replacment для текущей общей метафоры GUI, изобретенной в 70-х и широко использующейся начиная с середины к концу 80-х.

вычислительная мощность не присутствовала в 1980 для создания этого возможным. Я верю , Игры вероятный шли впереди здесь. Пример может легко быть замечен во взаимодействии прокрутки списка в iPod Touch / iPhone. Механизм взаимодействия полагается на интуицию того, как работа импульса и трения в реальном мире для обеспечения простого способа прокрутить список объектов и удобство использования полагается на физический жест, которые вызывают прокрутку.

27
задан user159439 19 August 2009 в 17:38
поделиться

4 ответа

Отношения ко многим в Core Data моделируются как неупорядоченные наборы. Однако вы можете создать извлеченное свойство для объекта Department, которое включает дескриптор сортировки, или вы можете отсортировать набор в памяти в своем приложении ( NSArrayController сделает это за вас, установив его sortDescriptors ] собственности).

7
ответ дан 28 November 2019 в 05:06
поделиться

Вам необходимо определить свой собственный метод, например sortedWorkers. Примерно так:

- (NSArray *)sortedWorkers {
    NSSortDescriptor *sortNameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES] autorelease];
    NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortNameDescriptor, nil] autorelease];

    return [self.workers sortedArrayUsingDescriptors:sortDescriptors];
}
2
ответ дан 28 November 2019 в 05:06
поделиться

У меня почти сработал фрагмент кода Хантера, за исключением того, что «рабочие» - это NSSet, мне пришлось сначала загрузить его в NSMutableArray:

- (NSArray *)sortedWorkers {
    NSSortDescriptor *sortNameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES] autorelease];
    NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortNameDescriptor, nil] autorelease];

    NSMutableArray *sortThese = [NSMutableArray arrayWithCapacity:[self.workers count]];
    for (id worker in self.workers) {
        [sortThese addObject:worker];
    }

    return [sortThese sortedArrayUsingDescriptors:sortDescriptors];
}
3
ответ дан 28 November 2019 в 05:06
поделиться

Minor improvement over Adrian Hosey's code:

Instead of manually iterating over all workers you can also just do:

-(NSArray *)sortedWorkers {
  NSSortDescriptor *sortNameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES] autorelease];
  NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortNameDescriptor, nil] autorelease];

  return [self.workers sortedArrayUsingDescriptors:sortDescriptors];
}

Probably does exactly the same thing as your iteration internally, but maybe they made it more efficient somehow. It's certainly less typing…

Note: the above only works on iOS 4.0+ and OSX 10.6+. In older versions you need to replace the last line with:

  return [[self.workers allObjects] sortedArrayUsingDescriptors:sortDescriptors];
31
ответ дан 28 November 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: