gpt4 book ai didi

cocoa - 不使用现有 NSCoding 方法来实现 NSCopying 的任何理由

转载 作者:行者123 更新时间:2023-12-03 16:40:53 26 4
gpt4 key购买 nike

给定一个实现 NSCoding 的类,是否有理由不应该使用此模式来实现 copyWithZone: 的实现:

-(instancetype)copyWithZone:(NSZone *)zone{
return [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:self]];
}

最佳答案

只是效率 - 编码/解码成本和总内存占用。

假设您有一个带有四个不可变实例变量的对象。如果您实现自定义copy,那么您将分配该对象的一个​​额外实例,然后赋予它所有四个实例变量的所有权。

如果您对其进行编码和解码,则会产生双向序列化的处理成本,并且最终会得到每个实例变量的新副本。

关于cocoa - 不使用现有 NSCoding 方法来实现 NSCopying 的任何理由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com