Use CoreFoundation object as an arc property in Objective-C

自从有了property 再也不用手动书写 setter 和 getter 了。

但是对于 CoreFoundation 对象来说,无法直接用来作为property 对象的,从本质上说 CoreFoundation对象更接近 C 结构体。 Apple 开发人员提供的 arc 解决方案,同时也包含了对 CoreFoundation 对象的支持。

以CGPathRef 为例:

@property (nonatomic, strong) __attribute__((NSObject)) CGPathRef underLinePath;

这里加入了 attribute((NSObject)) 字段,来告诉编译器需要将该对象当作 NSObject 属性类处理,因此对于 setter 和 getter 的自动释放处理,可以放心的交给编译器来做了。

参考自:http://stackoverflow.com/questions/9274397/retained-core-foundation-property