0

通常,我们像这样取消财产:

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

但是如果我想声明一个 CF 对象,我该怎么做呢?ARC下也一样吗?

4

1 回答 1

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

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

因为 NSString 和 CFStringRef 之间有免费桥接,你也可以这样做:

@property (nonatomic, strong) NSString *myString;

并且在使用 CFStringRef 设置属性时:

CFStringRef myStringRef = CFSTR("Hello!");

myObject.myString = (__bridge_transfer NSString *)myStringRef;

另见:http ://amatn.com/2011/12/07/arc_best_practices.html

和:分配属性、ARC 和 Core Foundation 对象

于 2013-05-28T09:25:23.243 回答