我正在编写单元测试,当我遇到 NSKeyedArchiver/NSKeyedUnarchiver 的奇怪行为时。以下是失败的测试。我做错了吗?
这是一个简单的项目:https ://github.com/genesislive2007/Archiving-Headache
-(void)test {
NSData* serializedObject = [NSKeyedArchiver archivedDataWithRootObject:[Drug new]];
id deserializedObject = [NSKeyedUnarchiver unarchiveObjectWithData:serializedObject];
XCTAssertTrue([deserializedObject isKindOfClass:[Drug class]]);
}
更新
一些日志:
NSLog(@"Class as string: %@", NSStringFromClass([deserializedObject class]));
NSLog(@"Address of the static class: %p", [Drug class]);
NSLog(@"Address of the object class: %p", [deserializedObject class]);
归档头痛 [1638:60b] 作为字符串的类:药物
归档头痛[1638:60b] 静态类地址:0x8bfd1d0
归档头痛[1638:60b] 对象类地址:0x357c
正如您在上面看到的,类描述符的地址是不同的。