NSTreeController как сохранить в файл

Привет я использую NSTreeController для управления NSOutlineView. Это приложение загружает закладки из файла в приложение. Как в примере SourceView в ADC:

http://developer.apple.com/mac/library/samplecode/SourceView/index.html

У меня вопрос, как мне сохранить закладку в файле после внесения изменений пользователем? Должен ли я поддерживать массив / дерево внутри приложения и сохранять его перед выходом или есть более простые методы?

1 ответ

Решение

Вы хотите отменить действие, происходящее в методе populateOutline MyWindowController.m. Этот метод считывает plist в один словарь, читает значение из этого словаря и использует его для построения дерева. Начните с этого метода и следуйте коду, чтобы увидеть, как он строит дерево. Он использует классы BaseNode и ChildNode для построения модели данных в виде дерева (я не уверен, почему они не просто использовали NSTreeNode). Вы хотите отменить эту процедуру, заканчивая NSDictionary. Затем вы можете использовать writeToFile:atomically: для сохранения словаря обратно на диск.

Это может быть настолько сложным, насколько вы захотите. Например, текущий код загружает файл словаря в отдельном потоке, так что вы также можете сохранить в отдельном потоке. Или, возможно, вы захотите сохранить после каждого редактирования, снова в отдельном потоке.

Другие вопросы по тегам