如何使NSArray充满CALayer的多个实例(所有实例都具有相同的框架,内容等)?
背景:CALayer需要一些开销来创建,所以我想在类的init方法中创建一些CALayers(都共享相同的属性)(稍后将在该类中使用).
我没有特别尝试过CALayer
,但我知道你可以利用以下方式执行深层复制NSCoding
:
CALayer *layer = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:layer]];
不过,我不确定如何复制它们对性能有什么帮助.
CALayer没有内置-(id)copy
方法.我不知道为什么.然而,为你自己搞砸并不难.创建CALayer类别并编写自己的复制方法.您所要做的就是实例化并手动从原件获取公共ivars/properties并设置为新副本.别忘了打电话[super copy]
BTW,CALayer是一个对象.您可以将其添加到NSArray.