Чтение архивов Cocoa (не Cocoa Touch) на iPhone - PullRequest
1 голос
/ 20 февраля 2010

Если у меня есть файл, который был написан Cocoa на Mac с использованием NSKeyedArchiver, есть ли какие-нибудь хитрости при чтении его на iPhone OS? NSKeyedArchiver существует на обеих платформах, но версия для Mac может архивировать NSColor, а iPhone может только разархивировать UIColor.

Есть setClassName: forClass: но я не думаю, что это помогает.

Я не думаю, что буквально будет возможно преобразовать NSColor (или большинство других классов), но мне было интересно, были ли какие-то хитрости.

(У меня был успех с архивными строками NSS.)

Ответы [ 2 ]

2 голосов
/ 20 февраля 2010

Поскольку NSColor и тому подобное на самом деле не существует на iPhone, ничто не мешает вам создать класс NSFoo, который является либо подклассом UIFoo (если их API-интерфейс совместим), либо обернуть UIFoo внутренне.

1 голос
/ 20 февраля 2010

Возможно иметь NSKeyedUnarchiver перенаправление разархивирования определенных имен классов:

[NSKeyedUnarchiver setClass:[MyColor class] forClassName:@"NSColor"]

Если возможно, избегайте архивирования объектов между платформами NSKeyedArchiver / NSKeyedUnarchiver не предназначены для создания форматов обмена.

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