Вот Java/Android функция:Ios низкого уровня сериализации
public static byte[] serialize(MyClass myObject) {
int byteArraySizeNeeded = getByteArraySizeNeededForSerialize(myObject);
byte[] result = new byte[byteArraySizeNeeded];
ByteBuffer bb = ByteBuffer.wrap(result);
bb.putShort((short) (byteArraySizeNeeded-2));// 2 - not need to read at deserialisation!
bb.putLong(myObject.getProperty1ValueWhichIsALong());// 8
bb.putDouble(myObject.getProperty2ValueWhichIsADouble());// 8
bb.putFloat(myObject.getProperty3ValueWhichIsAFloat);//4
bb.put(CODE_MYCODE1); // code
bb.putFloat(myObject.getProperty4ValueWhichIsAFloat);
// there are a lot of properties and the list is dynamic: some need to be saved some not: eg if property 10 exists than not needed to save property 11 and property 25 is saved only if not null and so on.
int curPosition = bb.position();
int offset = 2; // skip the first 2 bytes representing the size of byte buffer needed to allocate.
int byteCount = curPosition - offset;
myObject.crc.update(result, offset, byteCount);
long crcValue = myObject.crc.getValue();
bb.put(CODE_CRC); // code
bb.putLong(crcValue);// only distinct data values
return result;
}
Я хотел бы сделать на прошивке тоже. Или я пропускаю или не могу найти структуру/класс данных низкого уровня, что использовать.
NSData и NSMutableData утверждают, что объект, который оборачивает массив байтов, но они с пользой функционировать лишь dataContentsOfFile и writeToFile.
NSArchiver как объект ObjectOutputStream.
Archives and Serializations Programming Guide Не удается найти какой-либо метод, который не требуется, чтобы положить ключ как encodeBytes: длина: forKey:
Я не хочу, чтобы изобретать колесо, а также использовать много ненужных данных при сохранении.
Является ли какой-либо класс утилиты, который имеет putLong() putFloat() putInt() и правильно создает массив символов или байтов?
Хммм, вы пытаетесь использовать NSCache? [NSCache пример] [1] [1]: http://stackoverflow.com/questions/12817476/how-to-store-data-in-nscache-in-ios –
@ daro2189 немного хуже, чем NSMutableDictionary –