iOS技术

OC与Swift区别

2021-11-15  本文已影响0人  QYCD
枚举:

OC的枚举相当于这个文件中的一个局部变量,且只能是整型(默认从0开始),也可指定整型值;在同一文件中,不同的枚举中,枚举名称不可以相同。
Swift的枚举,其枚举值支持整型、浮点型、字符串、布尔类型四种;创建时不分配默认整数值;可以通过rawValue访问其原始值;可以通过Week(rawValue:6)创建一个枚举实例

import UIKit

enum Week: Int {
    case Mon
    case Tues
    case Wes
    case Thu
    case Fri
    case Sat
    case Sun
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        //可以通过rawValue访问其原始值
        let fri = Week.Fri.rawValue
        print("This is ==\(fri)")
        
        //可以通过Week(rawValue:6)创建一个枚举实例
        let ins = Week(rawValue: 6)
        print("E \(ins ?? Week.Sat)")
    }
}
打印:
This is ==4
E Sun
数组

NSArray是OC中的类型,属于引用类型,Array是Swift中的结构体类型(struct),属于值类型
Swift数组是否可以被修改是通过var和let关键字决定的;OC中数组是否可以被修改是通过NSArray和NSMutableArray这两个类型来决定的;
Swift中数组,数据值被存储进入到某个数组之前类型必须明确,可以显式的类型标注或者类型推断,Swift的数组不必是对象类型,可以存储基本类型,而OC的数组必须是对象类型;

var cities = ["Beijing", "Shanghai", "Guangzhou"]
print(cities)
        
cities.append("Shenzhen")
print(cities)
        
var numbers: [Int] = []
numbers.append(888)
print(numbers)
打印:
["Beijing", "Shanghai", "Guangzhou"]
["Beijing", "Shanghai", "Guangzhou", "Shenzhen"]
[888]

字典

Swift的字典是否可以被修改是通过var和let关键字来决定的;
OC的字典是以NSDictionary和NSMutableDictionary来决定的;
Swift的字典的key可以是Int类型,而OC的字典的key一般是字符串类型

var dic1: [String: String] = ["name": "Jane", "age": "20"]
print(dic1)
        
dic1["height"] = "180"
print(dic1)
        
var dic2: [Int: String] = [1:"2222"]
print(dic2)
打印:
["name": "Jane", "age": "20"]
["name": "Jane", "age": "20", "height": "180"]
[1: "2222"]
上一篇 下一篇

猜你喜欢

热点阅读