如何获取从笔尖加载的UIView的多个副本?

dma*_*o12 3 iphone objective-c interface-builder

我想多次使用UIView层次结构(nib对象是模板).不幸的是,UIView不符合<NSCopying>所以

[cell.contentView addSubview: [[templEditCellView copy] autorelease]];
Run Code Online (Sandbox Code Playgroud)

不起作用.

我并不感到惊讶,因为我想要一个视图层次结构的深层副本.

目前,视图是从中加载的nib中的几个顶级对象之一.有没有办法从笔尖重新加载单个指定的顶级对象?我应该将视图拆分为单个NIB,可以按需重新加载吗?或者是否有另一种方法来制作视图的深层副本?

谢谢!

NSR*_*der 7

制作视图深层副本的最简单方法是归档和取消归档.

id copyOfAView = 
  [NSUnarchiver unarchiveObjectWithData:
    [NSArchiver archivedDataWithRootObject:aView]]; 
Run Code Online (Sandbox Code Playgroud)

将视图放在自己的笔尖中也可以.您可以创建一个NSNib对象并根据需要重新加载它.