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

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的情形。

时间: 2025-01-05 00:47:14

IOS之Core Foundation框架和Cocoa Foundation框架的区别的相关文章

cocoa foundation笔记-2

    //数组的创建      NSArray *array1 = [NSArray arrayWithObject:@"one"];     NSArray *array2 = [NSArray arrayWithObjects:@"one", @"two", nil];     NSArray *array3 = [NSArray arrayWithArray:array2];     NSArray *array4 = [[NSArray

cocoa foundation笔记-4

//NSSet类是一组单值对象的集合,且NSSet实例中元素是无序的,同一个对象只能保存一个 /*******************不可变集合****************/ //集合的创建 //方式一 NSSet *set1 = [NSSet setWithObject:@"1", @"2", nil]; //方式二 NSSet *set2 = [[NSSet alloc] initWithObejects:@"1", @"2&q

cocoa foundation笔记-3

//Foundation中的字典NSDictionary是由键-值对组成的数据集合.key(键)的值必须是唯一的 /*****************不可变字典*****************/ //字典的初始化 NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];    //输出:{key = value} NSDictionary *dic2 = [NS

cocoa foundation笔记-1

//数字对象的创建与使用 //main.m #import<Foundation/Foundation.h> int main(int argc, const char argv[]) {     @autoreleasepool{         //创建一个NSNumber"数字对象"         NSNumber *monthNumber = [NSNumber numberWithInt:10];         NSNumber *lengthNumber =

iOS的系统层级结构和相关的框架

一,概述 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch layer).理解iOS的系统构架,对我们日常开发有很大帮助.其实iOS是基于UNIX的,所以我们完全可以相信这个操作系统,要知道从系统的稳定性上来说它要比其他操作系统的产品好很多. 二, IOS操作系统的层次结构及相关框架 1.Core OS 核心层:包含Accelerate Framew

UI - Cocoa Touch框架

Cocoa Touch 层 Cocoa Touch层包含创建 iOS应用程序所需的关键框架.上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础.在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能使用该层的框架. 高级特性 下面章节描述一些常见特性,也许您也正打算在应用程序支持这些特性. 多任务 如果应用程序构建于iPhone SDK 4.0及其后续版本(且运行于iOS 4.0及后续版本操作系统),则点击Home键的时候,应用程序不会结束,而是切换到后台.对于大多

Cocoa Touch框架

iOS – Cocoa Touch简介: iOS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更加专注于触摸的接口和优化.UIKit 为开发者提供了在 iOS 上实现图形,事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等. Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计.有了 UIKit,您可以使用 iOS 上的独特的图形接口控件,按钮,以及全屏视图的功能

IOS的Core Image使用

Core Image Programming Guide--图像编程指南 一.介绍Core Image是一个处理和分析图像的技术,被设计用来提供接近实时处理静态和视频图像.Core Image隐藏了低级的graphics 处理过程,提供了一个易于使用的程序界面(API).你不需要知道OpenGL ES的细节,也不需要知道GCD.它替你处理这些. 1.Core Image 框架提供:1)访问内置的图像处理filter2)检测特征能力3)支持自动图像增强4)连接多个filter来创建自己想要的效果.

iOS: 知名APP用到的第三方开源框架

知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分.此前<iOS第三方开源库的吐槽和备忘>中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架.另外txx's blog中详细介绍了Facebook Paper使用的第三方库. Instagram AFNetworking: 适用于iOS和OS X的网络框架. Appirate