OC笔记-CFBridgingRetain和CFBridgingRelease

本文介绍了CFBridgingRetain和CFBridgingRelease在Core Foundation与Foundation框架间转换数据类型时如何影响对象的引用计数。特别是在自定义Runloop Source0回调中,误使用CFBridgingRelease可能导致对象过早释放。同时,文章探讨了显示转换id和void*的情况,在ARC启用和禁用时的不同行为,并提到了Bridge转换的其他方式及其对对象持有关系的影响。
摘要由CSDN通过智能技术生成

CFBridgingRetain和CFBridgingRelease

在Core Foundation框架和Foundation框架中有大量的可互换使用的数据类型。
这意味着你可以使用相同的数据类型,作为Core Foundation框架方法调用或Objective-C消息的参数或接收者。
这种在Core Foundation框架和Foundation框架之间交换使用数据类型的技术就叫"免费桥" (Toll-Free Bridging)。

一般我们使用CFBridgingRetain完成对NSObject对象转为CF实例,使用CFBridgingRelease完成CF实例转NSObject对象

CFBridgingRelease会导致CF实例引用计数-1,例如下面例子

void RunLoopSourcePerformRoutine (void *info)
{
   
    NSLog(@"RunLoopSourcePerformRoutine %p",info);
    RunLoopSource*  obj = (RunLoopSource*)CFBridgingRelease(info);
    NSLog(@"RunLoopSourcePerformRoutine %@",[obj valueForKey:@"retainCount"]);
    [obj sourceFired]
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我不太确定你想问什么。但我会尝试回答你可能感兴趣的问题。 NVIDIA GeForce GTX 1650是一款显卡,而oc gen-x和kext whatever green都是与黑苹果(Hackintosh)相关的软件。oc gen-x是一种黑苹果引导加载器,而kext whatever green是一种黑苹果内核扩展程序。 如果你的问题是关于如何在黑苹果上使用NVIDIA GeForce GTX 1650显卡,那么需要知道的是,NVIDIA显卡在黑苹果上通常需要使用额外的内核扩展程序才能正常工作。其中,kext whatever green是一个比较常用的内核扩展程序,它可以帮助黑苹果系统正确加载和管理NVIDIA显卡。 如果你使用oc gen-x引导加载器来启动黑苹果系统,那么你可能需要配置config.plist文件以启用kext whatever green。具体来说,你需要在config.plist文件中添加一行类似于以下内容的代码: ``` <key>Kernel</key> <dict> <key>Add</key> <array> <dict> <key>BundlePath</key> <string>WhateverGreen.kext</string> <key>Enabled</key> <true/> <key>ExecutablePath</key> <string></string> </dict> </array> <key>Quirks</key> <dict> <key>AppleCpuPmCfgLock</key> <true/> <key>AppleXcpmCfgLock</key> <true/> </dict> </dict> ``` 这样做将会启用kext whatever green内核扩展程序,以支持NVIDIA GeForce GTX 1650显卡在黑苹果系统上的正常工作。需要注意的是,这只是一个基本的配置示例,具体的配置方式可能会因为不同的黑苹果配置和版本而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值