`

objective-C bridge

阅读更多

Core Foundation 和 NSObject 对象的内存管理。因为NSObject 的对象都引入了ARC来管理内存。 而CoreFoundation是没有使用ARC的。所以在CoreFoundation和NSObject对象转换的时候,就需要明确对象的管理权交给谁去控制,避免对象没人控制释放,导致内存泄露,或者对象被多次释放,造成程序崩溃。


__bridge_transfer:给予 ARC 所有权
内联函数,不会对程序有额外的开销。可以理解为宏定义,在编译的时候会去替换。

 

NS_INLINE id CFBridgingRelease(CFTypeRef CF_CONSUMED X) { 
    return (__bridge_transfer id)X;
}

 
__bridge_retained:解除 ARC 所有权 

NS_INLINECF_RETURNS_RETAINEDCFTypeRef CFBridgingRetain(id X) {   
    return (__bridge_retainedCFTypeRef)X;
}

 
调用者在使用CFBridgingRetain来操作NSObject对象后,就必须在适当时候调用CFRelease来释放该对象
CFStringRef s2 = CFBridgingRetain(s1);
// . . .
CFRelease(s2);

分享到:
评论

相关推荐

    The Node.js ⇆ Objective-C bridge.zip

    标题 "The Node.js ⇆ Objective-C bridge.zip" 暗示了这个压缩包包含的资源是关于在Node.js和Objective-C之间建立通信桥梁的技术。这种桥梁通常被称为绑定或桥接库,它允许开发者在JavaScript(Node.js运行时环境)...

    objective-c实现socket的几个Demo

    Objective-C是一种强大的面向对象的编程语言,特别是在Apple的iOS和Mac OS X平台上广泛使用。在这些平台上,Objective-C被用于构建各种类型的应用程序,包括那些需要进行网络通信的。Socket编程是实现网络通信的基础...

    Swift和Objective-C混合编程示例代码

    1. **桥接头文件(Bridge Header)**:为了让Objective-C代码能够访问Swift代码,我们需要创建一个桥接头文件(通常命名为ProjectName-Bridging-Header.h)。在这个文件中,我们可以导入Objective-C的类和协议,使...

    Java-Objective-C-Bridge:薄桥,允许从Java到Objective-C的双向通信

    Java-Objective-C-Bridge概要薄桥,允许从Java到Objective-C的双向通信。执照要求OS X上的Java 11或更高版本JNA入门检出项目并使用mvn clean install (用于调试版本)或mvn clean install -Drelease=true (用于...

    JSPatch bridge Objective-C

    这项技术的核心是通过Bridge,将JavaScript与Objective-C的世界连接起来,实现了动态更新功能,提高了开发效率并降低了维护成本。 **一、JSPatch的工作原理** JSPatch基于Google的V8 JavaScript引擎,它将...

    pyobjc:具有针对macOS框架的绑定的Python <-> Objective-C Bridge

    PyObjC是一个强大的工具,它为Python程序员提供了一个桥梁,使得他们可以无缝地与Apple的Objective-C macOS框架进行交互。这个库允许Python代码直接调用Objective-C类和方法,同时也让Objective-C能够调用Python函数...

    Matrix-iMessage木偶桥_Go_Objective-C_下载.zip

    1. **Bridge**:这是连接Go和Objective-C的关键部分。它定义了接口和协议,使得Go代码能够调用Objective-C的方法,反之亦然。通常,这会涉及到C语言的接口,因为Go可以很容易地与C进行互操作。 2. **编译和链接**:...

    Objective-C 程序设计(第4版)

    - **桥接头文件(Bridge Header)**:使得Objective-C代码可以引用Swift库,反之亦然。 8. **测试和调试**: - **Xcode集成开发环境**:包含内置的测试工具和调试器,支持单元测试、集成测试和性能测试。 9. **...

    A Matcher Framework for Swift and Objective-C.zip

    - 为了在 Swift 中使用 Objective-C 代码,苹果提供了桥接头文件(Bridge Header),使得两种语言可以相互调用对方的API。 - Objective-C 类和协议可以在 Swift 中直接使用,反之亦然,这为开发者提供了灵活性。 ...

    swift-Objective-C下的FlexboxMLLayout

    `Objective-C下的Flexbox MLLayout`可能是指一个Objective-C编写的库,名为MLLayout,该库实现了Flexbox布局模式,并且可以在Swift项目中通过桥接头文件(Bridge Header)进行调用。Molong(可能的作者或项目名)的...

    Objective-C 代码与Javascript 代码相互调用实例

    Objective-C作为iOS开发中较为传统的编程语言,在与网页的交互中常常需要调用JavaScript代码,同样JavaScript也可能需要调用Objective-C代码。这种相互调用技术在提供更为丰富的用户体验和功能实现方面发挥着重要...

    一个带有手势和动画的项目_Swift_Objective-C_下载.zip

    在这个项目中,我们可以期待看到如何在Swift和Objective-C之间进行混合编程,即桥接头文件(Bridge Header)的使用,以及如何在不同语言编写的代码之间进行通信。此外,手势识别的实现可能会涉及自定义手势或组合多...

    swift-一个使用@dynamicCallable实现的SwiftObjective-CBridge

    在Swift Objective-C Bridge中,我们可以定义一个结构体或类来实现这些要求,使得我们可以像调用Objective-C方法一样调用Swift对象。 ```swift struct SwiftObjCBridge: DynamicCallable { func call(withArgs ...

    Mocha:Objective-C JavaScript Bridge 和脚本环境

    Objective-C / JavaScript Bridge 和脚本环境 Mocha 是一个将 JavaScript 连接到 Objective-C 的运行时。 它建立在 JavaScriptCore(负责解析和评估 JavaScript 代码的 WebKit 组件)和 BridgeSupport 之上,...

    scripting-bridge-definitions:脚本桥的Objective-C头文件和Swift协议

    标题"scripting-bridge-definitions: 脚本桥的Objective-C头文件和Swift协议"指出,这里包含的是与Scripting Bridge相关的头文件和Swift协议定义。这些文件是开发过程中必要的组件,因为它们定义了如何在代码中与...

    ARC探秘:Objective-C中的自动引用计数革命

    ### ARC探秘:Objective-C中的自动引用计数革命 #### 1. ARC简介 自动引用计数(Automatic Reference Counting,简称 ARC)是一项由Apple公司为Objective-C编程语言设计的内存管理技术。ARC的主要目标是简化内存...

    ReactNative,移动心律失常监测App_JavaScript_Objective-C_下载.zip

    这个“ReactNative,移动心律失常监测App_JavaScript_Objective-C_下载.zip”文件很可能包含了一个使用ReactNative构建的心律失常监测应用的源代码。以下是关于ReactNative和心律失常监测App开发的知识点: 1. **...

    Object C调用c++例子

    Objective-C是C语言的超集,因此它完全兼容C语言,并且可以方便地集成C++代码。这意味着Objective-C可以直接包含C++的类和函数,反之亦然,只要遵循一定的规则。 2. **C++的命名空间(Namespace)**: 在...

    Apress.Pro.Objective-C.Design.Patterns.for.iOS

    在iOS开发中,采用Objective-C语言,设计模式的应用能够提升代码的可读性、可维护性和可扩展性,帮助开发者更高效地构建高质量的应用程序。 ### 设计模式的历史与Cocoa Touch技术的关系 设计模式的概念起源于上...

    Pro Objective-C Design Patterns for iOS 英文版

    《Pro Objective-C 设计模式为 iOS》一书深入探讨了Objective-C编程语言中设计模式的应用,旨在提升开发者在iOS开发中的技能水平。本书由Carlo Chung撰写,通过一系列章节,详细讲解了各种设计模式,包括对象创建、...

Global site tag (gtag.js) - Google Analytics