pla*_*ker 5 memory-management casting objective-c automatic-ref-counting
我正在尝试将类型id的NSInvocation对象传递给对象.编译器建议我像这样做一个桥接演员:
[invocation setArgument:(__bridge void *)(argument) atIndex:idx];
这样可以,我应该做些什么来防止内存泄漏或其他问题吗?
__bridge 将允许您(以松散的术语)在Objective-C和C之间来回切换,而不会对对象的内存管理产生任何影响.
__bridge_transfer用于通过更改对象的所有权将对象从C传输到Objective-C.它减少了CF保留计数并将内存管理交给ARC,这应该足够智能,以便随后以必要的方式保留对象.
__bridge_retained基本上是__bridge_transfer它的反转,它将从Objective-C传递到C并在该过程中增加对象的保留计数.ARC将不再对该对象感兴趣.
| 归档时间: | 
 | 
| 查看次数: | 346 次 | 
| 最近记录: |