Могу ли я написать в ветку ресурса, используя NSDocument? - PullRequest
5 голосов
/ 09 августа 2011

Я хотел бы сохранить некоторую дополнительную информацию вместе с документом, но я не могу использовать пакеты или пакеты и не могу сохранить ее внутри самого документа.

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

Могу ли я использовать NSDocument для хранения информации в ветке ресурсов документа? Если так, как я могу это сделать? Должен ли я напрямую писать в <filename>/..namedfork/rsrc или есть API?

Ответы [ 3 ]

9 голосов
/ 09 августа 2011

Во-первых, не используйте ветку ресурса.Это практически не рекомендуется.Вместо этого используйте расширенные атрибуты.Они могут быть установлены программно на уровне BSD с помощью setxattr и getxattr.Расширенные атрибуты используются во многих местах ... например, в последней версии OS X сама ветвь ресурса реализована как специальный тип расширенных атрибутов.

Например, текстовая система Какао автоматически добавляет расширенный атрибут в файл для указания кодировки.

Я думал, NSFileManager и NSFileWrapper поддерживали расширенные атрибуты со времен Snow Leopard, но я не могу найти никакой документации: p Хотя вы всегда можете использовать функции уровня BSD.

1 голос
/ 09 августа 2011

Должно ли государство перемещаться вместе с файлом, если он скопирован на другой компьютер? В противном случае вы могли бы сделать намного хуже, чем эмулировать способ, которым Bare Bones обрабатывает состояние документа с помощью BBEdit. Они хранят состояние для всех документов в ~ / Library / Preferences / com.barebones.bbedit.PreferenceData / Document State.plist.

Документация ветки ресурса здесь . Но он содержит множество предложений не использовать ветку ресурса.

0 голосов
/ 09 августа 2011

У меня есть класс на моем веб-сайте для чтения и записи веток ресурсов, которые я так и не удосужился перенести в мой репозиторий GitHub, потому что, как указывает Юджи, они на самом деле больше не используются.

Я собирался сказать, что файлы псевдонимов и файлы местоположения в Интернете - единственные места, где они используются, но я использовал и протестировал его на Mac OS X v10.7 (Lion), и они даже не используютсятам больше;они все еще могут использоваться для пользовательских значков.Я не проверял это исключительно.Мне нужно будет посмотреть, как это повлияет на мой класс NDAlias ​​на 10.7.

ndresourcefork

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...