我想保存 NSIndexPath 对象的副本以供以后使用。然后,我想覆盖原来的对象。由于 copy
仅增加对象的保留计数,因此如何对原始索引路径进行深层复制?
...
NSIndexPath *originalIndexPath = [tappedIndexPath copy]; // need to make a deep copy here
tappedIndexPath = ...;
...
// need the original index path here
最佳答案
由于 NSIndexPath
无论如何都是不可变的,因此副本是深还是浅并不重要。事实上,深拷贝会浪费内存。
关于您的示例:对于您想要执行的操作,您根本不需要复制索引路径。当您将另一个索引路径对象分配给tappedIndexPath
(在第二行中)时,根本不会影响originalIndexPath
。在代码片段的末尾,originalIndexPath
仍将指向与之前完全相同的对象。
关于objective-c - 如何深度复制 NSIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10665968/