У меня есть приложение, которое отображает массив объектов в 6 столбцах NSTableView. Пользователь может отображать список через любой порядок сортировки столбцов, который они предпочитают. NSTableView в XIB-файле использует функцию автосохранения, так что порядок сортировки сохраняется при запуске приложений. Все работает хорошо.чтение Autosave'd NSSortDescriptor's из NSTableView
Есть моменты, когда я хочу знать, что предпочитает порядок сортировки пользователя до этот конкретный загружаемый файл NSTableView загружается. Я хотел бы прочитать эти настройки порядка сортировки из файла настроек, чтобы отсортировать массив в соответствии с их предпочтениями, но без загрузки из XIB-файла, содержащего этот NSTableView.
Я могу видеть дескрипторы сортировки, сохраненные в файле настроек стандартныхUserDefaults моего приложения. Это массив с 12 элементами в нем (0-11), а четные элементы (0,2,4,6,8,10) показаны как данные и нечетные элементы (1,3,5,7,9) , 11) являются булевыми.
В документации сказано, что NSSortDescriptor соответствует NSSecureCoding, но если я экземпляр NSKeyedUnarchiver с одним из элементов данных, я получаю: «не шпонкой архив не может быть расшифрован с помощью NSKeyedUnarchiver» Если я использую NSUnarchiver, я получаю : «* Конец архива преждевременно встречается на 58»
В любом случае, логические элементы в массиве являются «восходящий» флаг свойство NSSortDescriptor и поэтому он даже не будет включен, если делает выше. Итак, я думаю, мне нужно каким-то образом объединить два элемента, чтобы получить кодированный дескриптор сортировки? Кто-нибудь имеет представление о том, как декодировать дескрипторы сортировки «autosaved»?