归档/取消归档后,对象具有不同的类

时间:2012-10-24 06:47:55

标签: objective-c ios

我正在使用iOS 6为iPad项目开发Objective-C代码库。

在我将“ClassA”类的名称重构为“ClassB”后,我发现以下测试失败:

NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:objectOfClassB];
ServiceOrderOld *decodedObject = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];

[[[decodedObject class] should] equal:[objectOfClassB class]];

我得到的错误信息是:“[FAILED],预计受到相同的ClassB,得到了ClassB”

可能导致这种奇怪行为的原因是什么?有关调试的任何提示吗?

2 个答案:

答案 0 :(得分:1)

我希望我不会太迟;)

我在测试框架时遇到了同样的问题。 事实证明,所讨论的课程也在测试的目标中。我认为它与框架的类不匹配(但编译!)。 我从测试的目标中删除了该类,并且测试通过了。

答案 1 :(得分:0)

似乎类与归档机制无关。你取消归档时是否试过重新上课?

DesiredClass *object = (DesiredClass*) [NSKeyedUnarchiver
   unarchiveObjectWithData:encodedObject];