Eri*_*rik 2 iphone objective-c
我想知道是否可以使用带有C类型的NSArray/NSMuatbleArray作为元素,即CGLayerRef?
如果将CGLayerRef对象添加到NSMutableArray,则代码会编译,但会抛出警告:
警告:传递'objectForKey:'的参数1使得整数指针没有强制转换
因此我的问题是:如何在可变数组中存储C类型?
最好,
海因里希
这是一个多部分的答案.最后,答案就是"你可以做到这一点".
(1)NSArray无法处理一般的C类型.如果你对这种事情感兴趣,CFArray可以配备自定义回调来存储其他类型的数据.警告:通常你可以将CFArray传递给任何采用API的NSArray - 它们是桥接的.这不适用于具有自定义回调的CFArrays.
(2)CGLayerRef不是任何旧的C类型,它是CFType.CFType与NSObject桥接.发送-retain和-release任何CFType的工作方式与在NSObject上的工作方式相同.如果您要在NSObject实现上放置一个类别-foo,然后将一些随机CFType转换为id并向其发送-foo消息,您将看到您foo调用的实现.
所以,这里的编译器警告是唯一的问题.您可以强制转换为(id)以避免它.所有这一切都得到了支持.
肯渡口
可可框架
| 归档时间: |
|
| 查看次数: |
3554 次 |
| 最近记录: |