Есть ли лучший способ сериализации объекта ObjC, чем использование/NSKeyedArchive?NSCoding и ostream
Мне нужно распространять объект через объект типа C++ std: ostream для размещения на другом компьютере.
Объект имеет более 122 членов различных типов ... для которых хочет меня
[coder encodeObject: (id) forKey: @"blah"];
для всех из них ...
Кто-нибудь есть хороший Perl скрипт, который будет по крайней мере, написать это? Я даже не знаю, содержат ли объекты, которые он содержит, что означает, что это может превратиться в огромный уродливый беспорядок, поскольку я не могу изменить источник объекта - мне нужно наследовать &, добавьте @interface
к нему ...
Или я тупой? Apple's guide не помогает мне, так как архивирование в XML не пройдет очень хорошо, несмотря на ostream.
Есть ли лучший способ сделать это?
-S!
[Edit 1]
Так что я смотрел на NSCoding, и мои классы содержат общие NSManagedObjects
... которые не соответствуют <NSCoding>
. Я попытался использовать Aspect Oriented Programing, найденный здесь [2], но это приводит к бесконечной рекурсии во время выполнения. (по крайней мере, это то, что я предполагаю, что стек вызовов из 104795 звонков на [id encodeWithCoder:]
есть.
Плюс, я не могу просто добавить <NSCoding>
в класс, поскольку я загружаюсь, так как его члены являются объектами импортированной инфраструктуры. 't просто добавьте к нему протокол, поэтому я думал, что работа с Aspect-Oriented будет работать.
Последняя (и ужасная) идея, которую я имею, - подклассы каждого класса, в котором я нуждаюсь, и реализую там протоколы. Огромный контрольный пробел, который я могу предвидеть, - это если классы включают NSArrays классов, которые не отображаются в рамках. Затем я потоплен.
Есть ли лучший способ сделать это? Я чувствую, что это решение времени разработки, и уже слишком поздно добавлять эту возможность.
помощь ...
PS
вся эта анти-спам вещь с предельной ссылкой сосать. Как я должен задавать разумные вопросы !?
[2]: HTTP://davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803
Я нашел [это] (http://davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803 «Аспектно-ориентированное программирование ObjC») Что делает именно то, что я хотеть. Поскольку я не могу редактировать класс (это в рамках), я не хотел создавать массивное отвратительное дерево наследования с добавлением. Но ... я буду использовать Accessorizer.Это выглядит небесно. –