Swift与OC的使用异同笔记

2018-07-12  本文已影响11人  旷野独狼

OC与Swift的比较

OC是一门消息传递语言,Swift采用安全的编程模式,并添加新的功能,界面基于Cocoa和Cocoa Touch框架,Swift从1.1到Swift3的升级过程中语法变化较大,苹果承诺Swift 3的升级是最后一个破坏性版本。

一、基础语法的不同

1、类型推测
1_1~1.png
2.基本数据类型
2.1 Bool
2.2 新增元组类型
   let info = (name:"GX",age:18,pounds:99.99);
   let (infoName,_,_) = info
   let infoAge = info.age
   let infoPounds = info.2
2.3 新增可选型
3.基本运算符
3.1 赋值运算符
3.2 范围
        for index in 1...5{
            print(index)
        }
        
        let index:Int = 10
        switch index {
        case 1..<4:
            print("1..<4")
        default:
            print("非1..<4")
        }

4.集合类型

Array与NSAarray,Dictionary与NSDictionary,Set与NSSet以及String与NSString,都可以无缝切换

4.1 数组
    var array:Array<String>=Array<String>()
    var array1:[String] = [String]()
4.2 集合
4.3 字典
    var dict:Dictionary<String,Any> = Dictionary<String,Any>()
    var dict1:[String:Any] = [String:Any]()
5.控制流
5.1 for循环
5.2 guard判断语句
5.3 switch开关语句
6.函数
    func sum(_ num1:Int,_ num2:Int)->Int{
        return num1 + num2
    }

7.闭包
        var sumClosure = { (x:Int, y:Int) -> Int in
            
            return x + y
            
        }
        var sumClosure1:(_ num1:Int,_ num2:Int)->(Int) = { num1,num2 in
            
            return num1 + num2
            
        }
        print(sumClosure(1,2))
        print(sumClosure1(3,4))

8.泛型
9.函数、闭包、泛型的综合使用
函数、闭包、泛型的综合使用.png
10.类、结构体、枚举
10.1 三者概述

Tips: 值引用表示使用的时候是使用的复制的值,但不必担心值引用的性能,因为它并不是完全复制,底层依旧是指针。Swift是一门强类型的语言,所以要求值类型的属性必须是类型明确的,当类型明确时,当类型明确时值类型的长度是固定的,复制时间成本时O(1),copies are cheap.

class NewClass{
    //创建一个新类
}

struct NewStruct {
    //创建一个结构体
}
enum NewEnum{
    //创建了一个枚举
}
10.2 枚举
//OC中的枚举
typedef NS_ENUM(NSInteger,Operation) {
    OperationDragUp,
    OperationInition
};
//Swift中的枚举示例一
enum Operation:String{
    case dragUp = "dragUp"
    case inition = "inition"
    
    func shouldLoadMore()->Bool{
        switch self {
        case .dragUp:
            return true
        case .inition:
            return false
        }
    }
}

//Swift中的枚举示例二
enum Operation1{
    case dragUp
    case inition
    case other(String)
}

11.属性
swift属性.png
12.构造与析构
13.类型检查、类型转换、类型嵌套

二、混编

1.Swift工程中调用OC
2.OC工程中调用Swift
6.png

三、面向协议编程

1.介绍

Swift是一个面向协议的语言,是因为从2.0开始,引入了对协议的扩展的特性。
协议使用步骤如下

2.代码实操

四、总结 Swift比Objective-C有什么优势?

1、Swift容易阅读,语法和文件结构简易化。

2、Swift更加安全,它是类型安全的语言。

3、Swift代码更少,简洁的语法,可以省去大量冗余代码

上一篇 下一篇

猜你喜欢

热点阅读