我想为CFStringRef声明一个属性,我该怎么办?

时间:2013-05-28 09:03:39

标签: objective-c automatic-ref-counting

一般来说,我们推销这样的财产:

@Property (nonatomic, retain) NSString * string;
@property (nonatomic, assign) NSInteger  number;

但是如果我要声明一个CF对象,我该怎么办? ARC下是否一样?

1 个答案:

答案 0 :(得分:3)

@property(nonatomic, strong) __attribute__((NSObject)) CFStringRef myString;

这样,ARC将为您完成所有工作。

因为NSString和CFStringRef之间存在tollfree桥接,你也可以这样做:

@property (nonatomic, strong) NSString *myString;

以及使用CFStringRef设置属性时:

CFStringRef myStringRef = CFSTR("Hello!");

myObject.myString = (__bridge_transfer NSString *)myStringRef;

另请参阅:http://amattn.com/2011/12/07/arc_best_practices.html

和:assign properties, ARC and Core Foundation objects