我得到奇怪的例外:
-[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver?
反序列化之前使用NSKeyedArchiver
和通过网络传输的对象。一切都正常(数据是相同的),但这种异常使记录很烦人。但是,当我在本地序列化 - 反序列化时,不会发生异常。
这是我如何序列化对象:
NSData *payload = [NSKeyedArchiver archivedDataWithRootObject:object];
以下是我反序列化对象的方法:
NCNamespaceObject *object = [NSKeyedUnarchiver unarchiveObjectWithData:payload];
这是对象的encodeWithCoder:
方法(super
的方法为空):
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[super encodeWithCoder:aCoder];
[aCoder encodeObject:self.text forKey:@"text"];
}
最后,这是对象的初始化器:
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
_text = [aDecoder decodeObjectForKey:@"text"];
}
return self;
}
不确定为什么会一直发布此错误...