Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:

  • 群体数据类型 (数组、集合等)

  • 程序包

  • 字符串管理

  • 日期和时间管理

  • 原始数据块管理

  • 偏好管理

  • URL及数据流操作

  • 线程和RunLoop

  • 端口和soket通讯

Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口。如果您将Foundation对象和Core Foundation类型掺杂使用,则可利用两个框架之间的 “toll-free bridging”。所谓的Toll-free bridging是说您可以在某个框架的方法或函数同时使用Core Foundatio和Foundation 框架中的某些类型。很多数据类型支持这一特性,其中包括群体和字符串数据类型。每个框架的类和类型描述都会对某个对象是否为 toll-free bridged,应和什么对象桥接进行说明。

如需进一步信息,请阅读Core Foundation 框架参考。

Objective-C指针与CoreFoundation指针之间的转换】

  ARC仅管理Objective-C指针(retain、release、autorelease),不管理CoreFoundation指针,CF指针由人工管理,手动的CFRetain和CFRelease来管理,注,CF中没有autorelease。

  CocoaFoundation指针与CoreFoundation指针转换,需要考虑的是所指向对象所有权的归属。ARC提供了3个修饰符来管理。

  1. __bridge,什么也不做,仅仅是转换。此种情况下:

    i). 从Cocoa转换到Core,需要人工CFRetain,否则,Cocoa指针释放后, 传出去的指针则无效。

    ii). 从Core转换到Cocoa,需要人工CFRelease,否则,Cocoa指针释放后,对象引用计数仍为1,不会被销毁。

  2. __bridge_retained,转换后自动调用CFRetain,即帮助自动解决上述i的情形。

  2. __bridge_transfer,转换后自动调用CFRelease,即帮助自动解决上述ii的情形。

转载于:https://www.cnblogs.com/Free-Thinker/p/10438508.html

IOS之Core Foundation框架和Cocoa Foundation框架的区别相关推荐

  1. iOS系统整体框架及类继承框架图

    iOS系统整体框架及类继承框架图 文章目录 iOS系统整体框架及类继承框架图 前言 一.系统架构 二.Cocoa框架 三.Cocoa框架的类继承体系 1.Foundation框架类继承体系 2.UIK ...

  2. 2019 - iOS最新最全面试题梳理(内含框架和算法题)

    内存中的区域划分 栈区(stack):由系统自动分配和释放,存放局部变量的值,容量小速度快,有序 堆:一般由程序员分配和释放,如果不释放,则出现内存泄露.程序会回收您的内存,特点:容量大,速度慢,无序 ...

  3. iOS开发:Core Animation编程指南

    关于Core Animation Core Animation是iOS与OS X平台上负责图形渲染与动画的基础设施.Core Animation可以动画视图和其他的可视元素.Core Animatio ...

  4. IOS 传感器Core Motion相关简述

    由于公司要求,了解了一下IOS上传感器数据的处理方式,在此作为记录. Core Motion Core Motion是IOS提供的一个封装好的框架,核心运动框架,可以很方便地获取基本九轴传感器的数据( ...

  5. ios开发愤怒的小鸟的Lua语言:Wax框架详解(一)

    核心提示:我们都知道Objective-C和Cocoa语言可以开发iOS应用,但是一年前,苹果决定在iOS系统上使用Lua语言.Wax框架的想法很简单:凡是Objective-C能做的,Lua也能做! ...

  6. 依赖注入的三种方式_ASP.NET Core技术研究-探秘依赖注入框架

    ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...

  7. Dora.Interception: 一个为.NET Core度身定制的AOP框架

    多年从事框架设计开发使我有了一种强迫症,那就是见不得一个应用里频繁地出现重复的代码.之前经常Review别人的代码,一看到这样的程序,我就会想如何将这些重复的代码写在一个地方,然后采用"注入 ...

  8. ASP.NET Core技术研究-探秘依赖注入框架

    ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...

  9. 从头编写 asp.net core 2.0 web api 基础框架 (2)

    上一篇是: 从头编写 asp.net core 2.0 web api 基础框架 (1) Github源码地址是: https://github.com/solenovex/Building-asp. ...

  10. Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架

    Socket在iOS客户端上的简单实现 - 利用GCAsyncSocket框架 GCAsyncSocket 这是一个2003的开发出来的一个开源框架 首先把GCDAsyncSocket的.h和.m文件 ...

最新文章

  1. 遇到的仍未学习的各种结论
  2. MyBatis源码骨架分析
  3. Scala入门到精通——第二十一节 类型参数(三)-协变与逆变
  4. LeetCode 321. 拼接最大数(单调栈)*
  5. 不恢复余数除法原理_青岛版二年级下册数学寒假预习:有余数的除法自主练习答案及讲解...
  6. JDK源码(21)-Unsafe
  7. ios 从assets加载图片_iOS 使用Assets.xcassets添加启动图和Icon
  8. 第 10 章 数组和指针
  9. 小学六年级学生写的 “线段树”解析,厉害了!
  10. 腾讯T4梳理的必备笔记:自动化测试必掌握的30个核心知识点
  11. HDU 1698 Just a Hook (线段树区间修改+区间查询)
  12. linux 下网站压力测试工具webbench
  13. docker重启容器
  14. Vue导出excel文件
  15. 玩与学 | 《乐高EV3机器人搭建与编程》
  16. Pascal 基础教程
  17. BI与SaaS碰撞,让数据处理更加轻松(下)
  18. 推荐一款搜索开源代码的神器 :Kooder!
  19. c语言单片机停车场收费系统,基于51单片机停车场车位引导系统设计
  20. 网页设计(HTML+CSS+Div)学习笔记

热门文章

  1. python环境精简版_【Python专题(一)】Python环境搭建
  2. 安装红帽linux显示半屏,在linux下模拟win+arrow来左右半屏当前窗口
  3. 字符串转换为小数(如String a=“123“),转换之后为123.0
  4. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_08-vuejs研究-vuejs基础-v-if和v-for指令...
  5. win7下硬盘安装Windows
  6. JavaScript中的数据结构及实战系列(1):队列
  7. Ural1297 最长回文子串(后缀数组+RMQ)
  8. BZOJ 2734: [HNOI2012]集合选数( 状压dp )
  9. IOS: Xcode报 Undecleared selector Warning错误的解决方法
  10. UVa 10003 Cutting Sticks(区间DP)