什么是实际影响"发布"有目标-c?

时间:2015-08-05 03:49:30

标签: objective-c memory-management automatic-ref-counting

我正在研究Objective-c中的内存管理。至于以下代码:

CFMutableArrayRef cfObject = CFArrayCreateMutable(kCFAllocatorDefault, 0, NULL);
id obj = CFBridgingRelease(cfObject);

它表示在代码执行后,cfObject指向的对象被释放但cfObject仍然指向它,因此它仍然可以像往常一样使用。所以我想知道释放函数给出的影响是什么,在对象发布后我仍然可以使用它?

1 个答案:

答案 0 :(得分:0)

CFBridgingRelease是一种完成CF对象内存管理的方法,同时将对象在其生命周期的剩余时间内交给NSObject内存管理。因此,此对象在CF世界中发布,但由obj(在ARC下)的赋值保留。因此它仍然存在,你仍然可以通过cfObject使用它(但你不应该,因为你已明确表示你已经在CF世界中完成了它)。