4

我正在为使用 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”

什么可能导致这种奇怪的行为?关于调试的任何提示?

4

2 回答 2

1

我希望我不会太晚;)

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

于 2015-02-13T05:25:12.237 回答
0

似乎类与归档机制真的无关。当您取消归档时,您是否尝试过重播课程?

DesiredClass *object = (DesiredClass*) [NSKeyedUnarchiver
   unarchiveObjectWithData:encodedObject];
于 2012-10-24T06:59:05.733 回答