- У меня есть 2 Цели моего IOS-App: MYAPPTARGET_1 & MYAPPTARGET_2
- MYAPPTARGET_1 пишет поток к BLOB с использованием NSKeyedArchiver
- MYAPPTARGET_2 читает поток из BLOB с помощью NSKeyedUnarchiver
Когда unarchiving Stream из BLOB в моем MYAPPTARGET_2, я получаю сообщение об ошибке: 016-01-18 15: 01: 38.541 WorldHistoryAtlasTest [598: 9405] * Завершение приложения из-за неотображенного исключения «NSInvalidUnarchiveOperationException», Причина: '* - [NSKeyedUnarchiver decodeObjectForKey:]: не может декодировать объект класса (MYAPPTARGET_1.MapTheme) для ключа (rootobject);Как реализовать делегат unarchiver для перезаписи имени класса?
Таким образом, он, очевидно, кодируется префиксом MYAPPTARGET_1 и не читается с MYAPPTARGET_2.
Итак, я получил подсказку для преодоления этого в другом STACKOVERFLOW. Ответьте на использование делегата unarchiver для перезаписывания имени класса. Но я не в состоянии осуществить это:
func unarchiver(unarchiver: NSKeyedUnarchiver, cannotDecodeObjectOfClassName name: String, originalClasses classNames: [String]) -> AnyClass? {
print("ClassName is " + name);
return nil; // WHAT TO DO , TO OVERWRITE THE CLASS NAME.
}
var mykeyedunarchiver:NSKeyedUnarchiver=NSKeyedUnarchiver(forReadingWithData: data!);
mykeyedunarchiver.delegate = self;
let temp=mykeyedunarchiver.decodeObjectForKey("rootobject")
У меня есть приложение с Имя_целевого_объектом MYAPPTARGET_1 и хранить некоторые данные сгустка с помощью функции NSKeyedArchiver.
Затем со второй целью приложения с именем MYAPPTARGET_2 я снова пытаюсь прочитать данные. Загрузка из BLOB, хранящегося в БД.
Я был бы так счастлив, если бы кто-нибудь мог дать мне практический намек на это.