• OC 和 swift 小结


    1 什么是 OC 语言?

        OC 语言即面向对象语言,它扩展了 ANSI C 语言,将 SmallTalk 式的消息传递机制加入到 ANSI C 中.它是苹果 OS 和 iOS 以及相关的 API,Cocoa 和 Cocoa Touch 的主要编程语言.

    2 OC 语言的特点:

    • 支持 C 语言语法,是 ANSI-C 语言的一个超集,是一种高效的编程语言.
    • 是 C 语言面向对象的扩展,完全支持面向对象的特性.
    • 简洁易读的编程风格,使编程和阅读更加清晰.
    • 兼容性好,可以在项目中直接导入 C 和 C++ 的头文件,也可以在文件中直接使用OC 和 C++ 编程.

    3 iOS 的生态系统不仅仅指其软件方面的丰富,更多指的是其设备的多样性.

    4 Core OS

    是用 FreeBSD 和Mach所改写的Darwin,是开源的符合 POSIX 标准的一个 UNIX 核心.该层包含所有 iOS 的基础功能(所有的这些功能都是通过 C 语言的 API 来提供的).另外该层具有 UNIX 特点,因此当将 UNIX 上的功能移植到 iOS 上的时候用到Core OS 的 API.同时该层还提供了硬件和系统框架之间的接口,但出于安全考虑,只有有限的框架能使用.

    5 Core services

                它在 Core OS 的基础上提供了更为丰富的功能,其中包括 Foundation.Framework 和 Core Foundation.Framework.之所以叫 Foundation 是因为,它提供了处理字串,排列,时间等基础功能.).其中 Foundation 属于 OC 是 API, 而 Core Foundation 属于 C 的 API.另外 Core Sercies 还提供了Security(处理认证,密码管理,安全性管理),Core Location(定位)SQLite(轻量级的数据库),Address Book(处理电话本)等功能.

    6 Media

                即提供图像,音乐,影片等多媒体功能.其中图片包括2D(Quartz 2D) 和3D(Open GLES).音乐对应的模块是Core Audio 和Open AL. 影片用 Media Player来支持.最后还提供了Core Animation动画支持.

    7 Cocoa Touch

                它是 OC的 API其中最核心的部分的 UIKit.Framework,应用程序上的各种组件全部由它来提供实现.除此之外还负责多点触摸.文字的输出,图片网页的显示,相机/文件的存取以及加速感应的部分.

    8 swift

                它继承了 OC 的面向对象优点,同时又具有简便的语法结构.它具有以下特点.

    • 闭包的统一
    • 元祖和多个返回值
    • 泛型
    • 快速而简洁的迭代范围/集合
    • 支持的方法和扩展的协议
    • 函数式的编程模式
    • 不通过编译即可查看效果
    • 高效强大
    • 安全

    9 OC 和 Swift 之间的区别

    • Swift句末不需要加分号,除非一行中写几行代码
    • Swift没有 main 函数,函数的执行是从上往下执行.
    • Swift没有. h 和. m 文件只有. Swift文件.
    • Swift没有地址的概念
    • Swift的数据类型会自动判断(变量用 var, 常量用let)
    • 强制类型转换: OC的强转à(int)a, Swift的强转àint(a)
    • 整数的数据类型可以通过 .min 和 .max来获取最大和最小值
    • 定义类型:OC:Typedef int Myint  Swift:Typealiaes Myint = int
    • Swift的摸除取余运算支持小数
    • Swift中 BOOL 类型中不在是 OC 中的非0即真,而是 true 为真 false 为假
    • Swift的赋值运算没有返回值
    • Swift可以多对多赋值: let(x,y) = (1,2)
    • Swift的循环语句必须加{},就算只有一行代码,也要加
    • Swift的 switch 语句后面可以跟任何数据类型,并且里面不用 break

    注:如果不想要break的效果 即后面的都想执行 那就写上关键字  fallThrough,但在fallThrough后面就不能再定义常量变量了

    10 swift 独有的特点

    • 运算: a…b 表示[a,b]  a..<b 表示(a,b)
    • 独有的溢出运算符:即当你赋值的时候大于其最大值范围,则会报错
    • Swift独有元祖类型

    Var a = (x:15,y:20.0)

    其中 a 就是元祖名,里面有两个元素 x和 y.

    取出赋值:a.x = 10或者 a.0 = 10(默认有下标)

    修改类型: var a = (int,string) = (10,21.0)

    打印时: printIn(a) = (10,20.0)

    用下划线省略不需要的元素 var a = (_,20.0)

    • Switch 语句中与元祖类型的时候,还可以用类似 SQL 语句的语法,添加过滤条件.
    • 函数的外部参数名

    原来是形式: func Sum(num1:int,num2:int) àint{}  调用: Sum(10,20)

    现在:func Sum(numOne num1:int,numTwo num2:int) àint{}

    调用: Sum(numOne:10,numTwo:20)

    • 函数的默认参数值

    func addPerson(name:string,age:Int = 18) à string{}

    调用: addPerson(“tom”)

    注:修改年龄时 addPerson(“Tom”,age:19)

  • 相关阅读:
    Linux进程组调度机制分析【转】
    Linux内存管理 (22)内存检测技术(slub_debug/kmemleak/kasan)【转】
    linux syscall 详解【转】
    Linux C 读取文件夹下所有文件(包括子文件夹)的文件名【转】
    Linux RTC驱动模型分析之rtc-sysfs.c【转】
    Linux的notifier机制在TP中的应用【转】
    Linux内存管理 (10)缺页中断处理【转】
    proc/net/dev实时网速统计实例【转】
    硬中断和软中断【转】
    Linux网络
  • 原文地址:https://www.cnblogs.com/xuan-yuan/p/5531375.html
Copyright © 2020-2023  润新知