如何在Objective C中复制UIButton?

Jam*_*ore 22 iphone objective-c

该对象继承自NSObject.

有没有一种方法可以将它的副本创建为新对象?

Jim*_*eia 65

UIButton不符合NSCopying,因此您无法通过-copy制作副本.

但是,它确实符合NSCoding,因此您可以归档当前实例,然后取消归档"副本".

NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject: button];
UIButton *buttonCopy = [NSKeyedUnarchiver unarchiveObjectWithData: archivedData];
Run Code Online (Sandbox Code Playgroud)

之后,您必须根据需要分配存档中未携带的任何其他属性(例如代理).

  • 聪明!我可能只是通过一个类别添加-copy,但这更好.=) (6认同)
  • 这不是有点慢吗? (3认同)