Core Foundation框架(2)命名规范,内省

命名规则中最重要的就是Create Rule,官方说明如下:

There is an important distinction between Get, and Copy and Create, in names of functions that return values. If you use a Get function, you cannot be certain of the returned object’s life span. To ensure the persistence of such an object you can retain it (using the CFRetain function) or, in some cases, copy it. If you use a Copy or Create function, you are responsible for releasing the object (using the CFRelease function). For more details, see Memory Management Programming Guide for Core Foundation.

即如果是通过Get方式返回的对象(而不是指针,对应的Cocoa中Get函数返回的时指针),你不需要负责release这个对象,但是不保证对象的生命周期。如果是Create 或者是Copy方式生成的对象,则保证生命周期,但是需要负责Release.

有的函数名字叫做createCopy,这就说明第一个参数需要传入一个分配器。

有的函数需要支持多态,比如CFCopyDescription,CFShow等等,这是需要传入参数是CFType类型才能保证可以多态。

一般函数定义如下:

CFStringRef CFCopyDescription(CFTypeRef cf);

void CFShow(CFTypeRef obj);

而CFTypeRef仅仅定义为:typedef const void * CFTypeRef;

时间: 2024-08-03 20:46:57

Core Foundation框架(2)命名规范,内省的相关文章

《从零開始学Swift》学习笔记(Day60)——Core Foundation框架

创文章,欢迎转载.转载请注明:关东升的博客   Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.尽管在Swift中调用这样的C语言风格的API比較麻烦,可是在OS X和iOS开发过程中,有时候使用CoreFoundation框架的API是很方便的,比如在与C语言混合编码的时候. Core Foundation框架与Foundation框架紧密相关,他们具有与同样的接口,可是不同.Core Foundation框架是基于C语言

《从零开始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理

原创文章,欢迎转载.转载请注明:关东升的博客 在Swift原生数据类型.Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,虽然是大部分是可以零开销桥接,零开销并不意味着内存什么都不用管.Swift类型内存管理是采用ARC,Foundation类型和Core Foundation类型内存管理都是采用MRC或ARC,CoreFoundation类型内存管理是基于C语言风格的,它有一个对象所有权的概念. Objective-C的MRC内存管理 Core Fou

Core Foundation 框架

Core Foundation 框架 2013-12-08 22:52 1978人阅读 评论(0) 收藏 举报 目录(?)[+] 转载自:http://blog.csdn.net/weiwangchao_/article/details/7744972 Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组.集合等) 程序包

Swift—Core Foundation框架-备

Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS X和iOS开发过程中,有时候使用CoreFoundation框架的API是非常方便的,例如在与C语言混合编码的时候. Core Foundation框架与Foundation框架紧密相关,他们具有与相同的接口,但是不同.Core Foundation框架是基于C语言风格的,而Foundation框架是基于Obje

IOS之Core Foundation框架和Cocoa Foundation框架的区别

Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组.集合等) 程序包 字符串管理 日期和时间管理 原始数据块管理 偏好管理 URL及数据流操作 线程和RunLoop 端口和soket通讯 Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objec

Core Foundation框架(1)基础介绍

在开发过程中绝大多数时间使用的是UIKit和Foundation框架,UIKit提供诸如UIView和UIButton这类的控件,Foundation提供NSArray,NSDictionary这类的数据结构,两者结合可以解决大部分问题,但是有的时候需要底层框架,底层框架名字通常以Core开头,比如Core Text,Core Graphics和Core Video.它们都是以Core Foundation为基础的C语言的API. Core Foundation中类型都是不透明类型(opaque

《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象

原创文章,欢迎转载.转载请注明:关东升的博客 内存托管对象 Swift中调用CoreFoundation函数获得对象时候,对象分为:内存托管对象和内存非托管对象. 内存托管对象就是由编译器帮助管理内存,我们不需要调用CFRetain函数获得对象所有权,也不需要调用CFRelease函数放弃对象所有权. 获得这些内存托管对象的方法,是采用了CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,示例代码: -(CGPathRef)makeToPath CF_

Foundation框架—结构体

一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了. 即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用 创建变量 (二)NSPo

PHP代码、文件命名规范

命名规范 开发的过程中应该尽量遵循下列命名规范: 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php: 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php: 确保文件的命名和调用大小写一