У меня есть NSArrayController, и я пытаюсь отсортировать его по длине строки, а также по алфавиту. NSArrayController содержит строку с таким пробелом " ".
Вот мой код:
NSSortDescriptor *nameSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSSortDescriptor *lengthSorter = [NSSortDescriptor sortDescriptorWithKey:@"length" ascending:YES];
[self.nameAC.content setSortDescriptors:@[lengthSorter, nameSortDescriptor]];
Но это результат рода:
Что мне нужно, чтобы сначала ввести строку " ", а после aaa, bbb, cccc, ddd.
Вывод в консоли NSArrayController (nameAC):
(lldb) po _nameAC
<NSArrayController: 0x6080001c05a0>[entity: Tags, number of selected objects: 1]
Вывод в консоли содержимого NSArrayController следующий:
(lldb) po _nameAC [сущность: Теги, количество выбранных объектов: 1]
(lldb) po _nameAC.content
<__NSArrayM 0x60000004f600>(
<Tags: 0x6000000a7260> (entity: Tags; id: 0x140002b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Tags/p5> ; data: {
category = "0x40000b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Categories/p1>";
product = "<relationship fault: 0x60800002ba80 'product'>";
name = bbb;
}),
<Tags: 0x6000000a7200> (entity: Tags; id: 0x100002b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Tags/p4> ; data: {
category = "0x40000b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Categories/p1>";
product = "<relationship fault: 0x60800002a160 'product'>";
name = aaa;
}),
<Tags: 0x6000000a7740> (entity: Tags; id: 0x1c0002b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Tags/p7> ; data: {
category = "0x40000b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Categories/p1>";
product = "<relationship fault: 0x60800002b940 'product'>";
tagName = ddd;
}),
<Tags: 0x6000000a5ca0> (entity: Tags; id: 0x40002b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Tags/p1> ; data: {
category = "0x40000b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Categories/p1>";
product = "<relationship fault: 0x6080000283e0 'product'>";
name = " ";
}),
<Tags: 0x6000000a76e0> (entity: Tags; id: 0x180002b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Tags/p6> ; data: {
category = "0x40000b <x-coredata://B7756C1E-B9F2-4C57-A1FA-272478C4D6A6/Categories/p1>";
product = "<relationship fault: 0x60800002a620 'product'>";
name = cccc;
})
)
Кто-нибудь из вас знает, что я делаю неправильно или как я могу это сделать?
буду очень признателен за помощь
self.nameAC
будетNSArrayController
. Имеет смысл установить для него свойствоsortDescriptors
. Однако ваш код получает свойcontent
и устанавливает для негоsortDescriptors
. Кажется, это не имеет смысла. Что такоеself.nameAC
иself.nameAC.content
? - person Ken Thomases   schedule 23.03.2015content
является свойствомNSArrayController
, но на что оно ссылается в вашем случае? Что это за объект в вашем случае? Свойство объявлено с типомid
, поэтому никто не может догадаться, что вы с ним делаете, если вы не сообщите нам об этом. Почему вы устанавливаете дескрипторы сортировки на нем, а не на самом контроллере массива? Покажите результат регистрацииself.nameAC
иself.nameAC.content
. - person Ken Thomases   schedule 23.03.2015