Можно ли использовать привязки Какао, чтобы редактируемый NSTableView был подключен к NSMutableArray?

StackOverflow https://stackoverflow.com/questions/820717

Вопрос

Из кусочков я могу разобрать, что ответом на этот вопрос будет "нет", поэтому я в общих чертах объясню, чего я пытаюсь достичь в (вероятном) случае, когда я пытаюсь вбить винт.

В моем приложении есть список допустимых расширений файлов для чтения, который я рекурсивно использую в каталоге. Я хочу, чтобы это было предпочтением, поэтому у меня есть следующее:

NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setObject:[NSMutableArray arrayWithObjects:@"pdf", @"rtf", @"txt", nil] forKey:@"validExtensions"];
[[NSUserDefaults standardUserDefaults] registerDefaults:dic];

и я связываю NSTableView с NSArrayController, который связан с контроллером Shared User Defaults ...

Это абсолютно неправильный подход к настраиваемому пользователем списку допустимых расширений? Я неправильно понял роль NSUserDefaults?

Это было полезно?

Решение

Ответ на вопрос, поставленный в заголовке: «Да» ... но, к сожалению, это не поможет, поскольку изменчивость структур данных в реальном хранилище резервных копий NSUserDefaults не контролируется изменчивостью объекты, которые вы передаете с помощью registerDefaults:.

Для значений предпочтений, которые сами являются структурами, для их изменения необходимо прочитать старую структуру, сделать изменяемую копию любой части, которую нужно изменить, изменить, а затем установить эту структуру в качестве нового значения. К сожалению, это плохо подходит для привязок, поэтому вам понадобится слой клея, который отражает изменения в связанном массиве в prefs.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top