如何在CALayer中存储数据?

Wes*_*ton 1 iphone core-animation objective-c

我正在创建一个CALayers网格,有没有办法设置标签或其他东西,以便我可以在需要时识别它?

我可能只是使用NSArray创建一个数据模型来跟踪,但如果我可以将它存储在图层中,那么我的实现会更容易.

Ash*_*lls 5

CALayer 是一个KVC兼容类,因此您可以为任何键设置一个值.

例如:

[myLayer setValue: @"A TAG" forKey: @"someKey"];
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下方法检索值:

value = [myLayer valueForKey: @"someKey"];
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅Apple文档.

  • 迂腐:当然,最正确的是"KVC兼容容器类"吗?为了符合KVC,您只需要固定的已定义属性列表来支持键值编码 - 我很确定它是容器位,表示您可以组成自己的属性. (2认同)