Нет, Вы не делаете , имеют к. Но если Вы хотите для изменений в app.config
вступить в силу, Вы, возможно, должны были бы перезапустить его. Или Вы могли бы хотеть реализовать механизм наблюдателя файла пользовательской конфигурации, который изменит настройки сервисов на лету.
Это неплохая идея, с точки зрения реализации я бы сделал это, реализовав NSXMLArchiver и NSXMLUnarchiver как подклассы NSCoder. Таким образом, любой класс, соответствующий протоколу NSCoding, может быть легко сериализован в XML и из него.
Одним из ударов производительности при сериализации в XML будут примитивные значения в качестве атрибутов, потому что вы не можете гарантировать порядок, в котором объект будет запрашивать данные. закодировано. Так что, если атрибуты - это то, что вы хотите, тогда они будут довольно большими в буферах памяти. Но это было бы забавное упражнение.
А насколько популярным оно будет? Думаю, не так популярно. Сценарий использования слишком мал.
NSKeyedArchiver работает именно потому, что он не пытается отобразить на схему XML. Многие, многие схемы XML плохо спроектированы (т.е. они переводят структуру объекта в памяти во внешний формат представления). Ключевая проблема заключается в том, что документы должны быть спроектированы так, чтобы иметь смысл с точки зрения документа, и что затем это нужно будет сопоставить с любым макетом памяти, который вы хотите для своих объектов. Вы когда-нибудь видели XML-документы с множеством атрибутов refid, относящихся к другим частям документа? Обычно они транслитерируются из реляционной базы данных, которая просто наклеивает угловые скобки на набор результатов.
Поэтому, начиная с предположения о взаимно-однозначном отображении между XML-документом и его представлением кода, в значительной степени обречены все, кроме простейших случаев. . Просто подумайте, где бы мы были сегодня с HTML, если бы он был разработан вокруг объектов C ++, которые использовались для создания экземпляра документа в первом браузере ... (ну, больше похоже на Objective-C, но эй ...)
Суть NSKeyedArchiver заключается в том, что вы можете развивать структуру данных, не нарушая возможности загрузки более старых версий. Невероятно сложно сделать это (правильно), используя какое-то автоматическое отображение экземпляра-переменная-элемент.
То, что вы описываете, скрыто внутри реализаций ObjectiveResource и поддерживает как JSON, так и XML. Это должно быть довольно легко разделить и свести к одному синтаксическому анализу, отбросив все управление соединениями.
Я боролся с требованиями в этой области и думаю, что это была бы отличная идея. Мне приходилось запугивать мои сервисы точечной сети, чтобы они возвращали JSON для удобного использования на iPhone. Приличная библиотека сериализации была бы превосходной.
Я начал аналогичный проект с открытым исходным кодом. Я назвал его САМИКСОС. вы можете посетить эту страницу и попробовать. Это в начальной стадии разработки. Он работает аналогично тому, о чем просила Энира.
Скоро я предоставлю образец кода.
http://sourceforge.net/projects/samixos/
Sami