0
我正在实现我自己的密钥NSCoder
的子类和解码失败的NSString。NSString不能解码类的版本XXXX
如果我这样做了以下内容:
MyUnarchiver *aDecoder = [[MyUnarchiver alloc] initWithData:someArchivedData];
NSString *aString = [[NSString alloc] initWithCoder:aDecoder];
然后将下面的 “未捕获异常” 被抛出:
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'NSString cannot decode class version 12345'
其中12345是此方法来在MyUnarchiver
,我相信:
-(NSInteger)versionForClassName:(NSString *)className
{
return 12345;
}
同样,如果我们抛出nil
NSCoder
在NSString
的initWithCoder:
然后我们得到了同样的错误如上,但版本号为0
我怀疑这可能与事实,我不知道我应该在versionForClassName:
方法来实现做。即使从Archives and Serializations: Subclassing NSCoder参考我无法收集这一点。