Мой пользовательский объект содержит массив из unichar
примитивов. Однако в NSCoder нет метода encodeUnichar:ForKey
. Мое решение состоит в том, чтобы преобразовать массив 2d unichar
в NSString
, а затем закодировать его.Как кодировать unichar-массив с использованием NSCoding
Однако отсутствие метода кодирования персонажа заставляет меня чувствовать, что мне не хватает чего-то очевидного, тем более, что я не смог найти ответ на переполнение стека.
Перед тем, как приступить к методу NSString, кто-нибудь знает, есть ли более простой способ сделать это, встроенный в протокол NSCoding?
Thanks Lee.
Это будет отлично работать, пока вы не попытаетесь декодировать значение на машине с другой endianess. Я знаю, что все машины Apple малодушны, но это может измениться в будущем (это уже есть). –
Вы должны поменять байты перед кодированием и после декодирования с помощью 'NSSwapHostShortToLittle' и' NSSwapLittleShortToHost' или ('NSSwapHostShortToBig' и' NSSwapBigShortToHost', если вы предпочитаете big-endian). –
Это прекрасно работает, если вы помните, что unichar имеет длину 2 байта! – Tangler