Возникают проблемы с динамическим отображением вложенного списка с использованием основных данных - PullRequest
0 голосов
/ 09 декабря 2018

В дальнейшем проблема, с которой я имею дело:

  • Я постоянно храню информацию с помощью iOS Core Data
  • Я хотел бы (динамически) отображать информацию, хранящуюся в ядреданные в UITableView (как описано ниже)
  • Я рассматриваю использование контроллера извлеченных результатов (FRC) и делегата FRC для более эффективной обработки моста между постоянно сохраняемыми данными и обновлениямив пользовательском интерфейсе
  • У меня есть Персона сущность с имя как атрибут.

  • У меня есть два отношения "ко-многим", указывающие от Person на Занятость Entity and two "обратные отношения «один-на-один», указывающие назад, так что любое лицо может иметь любое число (от 0 до ∞) работодателя (ей) и любое количество сотрудников (ий) одновременно:

employee <—>> employmentTaken

employer <—>> employmentGiven

  • Каждое Занятость имеет ранг (Int)атрибут, используемый для отображения Person 's работодателя (ей) - если таковой имеется - для пользователя в порядке, определяемом относительным доходом, генерируемым каждым Employment этого Person (каждый уровень дохода может быть изменен в любое время).

  • Для программы, чтобы отслеживать людей, показанных в UITableView, каждый Занятость также приходитс атрибутом show (логическое значение), где true = показать в таблице и false = не показать в таблице.

Я хотел бы перечислить Персоны в UITableView, так что, когда пользователь нажимает на Персона , столько строк вводится в UITableView под Персона Имя, необходимое для отображения работодателя (ей) лица, и так рекурсивно (поскольку любой Персона может быть Работодателем и Сотрудник ), окончательный вид - вложенный список.

Пример следующим образом:

Исходное состояние интерфейса:

Имя лица 1

Имя лица 2

Имя лица 3

...

Состояние пользовательского интерфейса После того, как пользователь нажимает на лицо 2, предполагая, что лицо 2 одновременно работает на лицо 4, 5 и 6:

Имя лица 1

Имя лица 2

________ Имя лица 4 * // 1-й источникдоходов по размеру лица 2 *

________ Name of Person 5 * // 2-й источник дохода по размеру человека 2 *

________ Имя человека 6 * // 3-й источник дохода по размеру лица 2 *

Имя лица 3

В настоящее время я использую NSFetchedResultsController, выбирая все вакансии, которые имеют show = true и пытаюсь отсортировать их, используя две клавиши:

let rank = NSSortDescriptor(key: #keyPath(Employment.rank), ascending: true)

let employee = NSSortDescriptor(key: #keyPath(Employment.employee), ascending: true)

(при отображении имени человека в ячейке я использую точечную запись: employment.employer?.name)

При использовании этих клавиш порядок не желателен, и я пытаюсь выяснить, могу ли я получить правильную сортировку, используя sortDescriptor и FRC.

Должен ли я использовать FRC вообще или вместо этого просто создать массив массивов и написать дополнительный код, чтобы сам позаботиться об обновлении интерфейса?

(Я все еще немного новичок в кодировании, и любая помощь будет чрезвычайно признательна!)

...