我目前正在使用NSCoding来序列化一个对象树,但其中一个包含作为数据成员的一个带有1,000,000个条目的本机C float数组,所以为了使用encodeFloat序列化它:forKey:对于每个数组条目,我需要应用1,000,000个无用的密钥,这可能非常慢。什么是首选的处理方式?
答案 0 :(得分:1)
对于每个数组条目,我需要应用1,000,000个无用的密钥
不,你肯定不需要为每个元素分别使用单独的键。 C数组是一个连续的内存块,因此您只需从该块创建一个NSData对象并将其存储为Hot Licks建议的。或者,由于一百万个浮点数需要相当多的存储空间,因此您可以在存储之前压缩数据。事实上,您甚至不需要NSData - 您可以使用-encodeBytes:length:forKey:
直接编码一系列字节。