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

创文章,欢迎转载。转载请注明:关东升的博客    

Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API。虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS XiOS开发过程中,有时候使用CoreFoundation框架的API是非常方便的,例如在与C语言混合编码的时候。

Core Foundation框架与Foundation框架紧密相关,他们具有与相同的接口,但是不同。Core Foundation框架是基于C语言风格的,而Foundation框架是基于Objective-C语言风格的。OS XiOS程序代码中经常会有多种语言风格的代码混合在一起的情况,这使得我们开发变得更加麻烦。 

数据类型映射

Core Foundation框架提供了一些不透明的数据类型,这些数据类型封装了一些数据和操作,他们也可以称为“类”,他们都继承于CFType类,CFType是所用Core Foundation框架类型的根类。这些数据类型在Foundation框架中都有相应的数据类型与之对应,这些数据类型也有一些与Swift原生数据类型有对应关系。


看看Swift原生类型Core Foundation类型之间的转换示例:

import CoreFoundation

import Foundation

 

var cfstr1: CFString = "Hello,World"     //创建CFString字符串

 

var str: String = cfstr1 as String           //将CFString字符串转换为Swift原生字符串String

 

var cfstr2: CFString = str                   //将Swift原生字符串String转换为CFString字符串

这个转换过程中Core Foundation类型转换为Swift原生类型是需要强制类型转换的。

 

 

 

欢迎关注关东升新浪微博@tony_关东升
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

 

 


http://www.niftyadmin.cn/n/1036396.html

相关文章

总结前端三剑客之一(HTML基础)

今天我们来学习前端三剑客之一(HTML),在讲解HTML之前,我们需要先了解前端三剑客是什么,分别又有什么作用呢? 前端三剑客指的是HTML、CSS、JavaScript,这三门语言。目前大多数网站的前端都是由这…

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

原创文章,欢迎转载。转载请注明:关东升的博客 在Swift原生数据类型、Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,虽然是大部分是可以零开销桥接,零开销并不意味着内存什么都不用管。Swift类型内存管理是…

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

原创文章,欢迎转载。转载请注明:关东升的博客内存托管对象Swift中调用CoreFoundation函数获得对象时候,对象分为:内存托管对象和内存非托管对象。内存托管对象就是由编译器帮助管理内存,我们不需要调用CFRetain函数获得…

【CSS】总结前端三剑客之一(CSS基础)

上一篇文章,我们介绍了HTML语言的基础用法后,今天我们继续学习CSS的基础语法。 CSS,又称为层叠样式表(Cascading Style Sheets)。CSS能够对网页中元素位置的排版进行像素级精准控制,实现美化页面的效果,能够做到页面的…

《从零开始学Swift》学习笔记(Day 64)——Cocoa Touch设计模式及应用之目标与动作

原创文章,欢迎转载。转载请注明:关东升的博客目标(Target)与动作(Action)是iOS和OS X应用开发的中事件处理机制。问题提出如图所示是一个ButtonLabelSample案例设计原型图,其中包含一个标签和一个按钮,当点击按钮的时候&#xff0…

【数据结构】数组区间更新-线段树

在讲解算法原型之前,我们先来看一道算法题,这道算法题很贴近生活,也就是我们小时候玩的俄罗斯方块。LeetCode699掉落的方块 题目描述的文字太多,我就简单点说,类似于俄罗斯方块,从上方掉下方块&#xff0c…

《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

原创文章,欢迎转载。转载请注明:关东升的博客实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下:button.addTarget(self, action: "onClick:", forControlEvents: UIControlEv…

【数据结构】数组区间更新-IndexTree(树状数组)

在前段时间,我们介绍过线段树,线段树是解决在数组区间上进行快速的增删改查操作。而今天我们讲得IndexTree也是为了达到这样类似的效果。 本期文章源码:GitHub 目录一、介绍二、IndexTree的实现1、add方法2、update方法3、query方法一、介绍 …