swift基础

宇宙浩瀚,星河璀璨,天地辽阔,韶华珍贵 都辜负不得✨

关于方法

在Swift中,structure和enumeration是值类型

class是引用类型

默认情况下,实例方法中是不可以修改值类型的属性,使用mutating后可修改属性的值

举个例子:在结构体中,有一个实例方法,如果直接修改属性的值,编译器会报错,可以使用mutating修饰。

struct Point {
    var x = 0
    var y = 0
    
    mutating func movePoint(x: Int, y: Int) {
        self.x += x
    }
}

关于继承

值类型不支持继承,只有类支持继承

子类可以重写(override)父类的下标、方法、属性

关于重写

super.speak()//父类

子类只能将父类类型重写为计算属性,不能重写为存储属性

关于单例模式

单例模式:就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

下面看看在swift中的几种实现方式

在实现之前导入Foundation

import Foundation
第一种

直接访问静态属性

class SingleOne {
  
    //单例
    static let shared = SingleOne()
}
第二种

结构体实现单例

class SingleTwo:  {
  
    private class var shared : SingleTwo {
        struct SharedSingleton {
            static let instance = SingleTwo()
        }
        return SharedSingleton.instance;
    }

    class func shareInstance() -> SingleTwo {
        return shared;
    }
}
第三种

定义私有静态变量 通过公有方法访问

class SingleThree {
  
    private static let instance = SingleThree();
    class func shareInstance() -> SingleThree {
        return instance;
    }
}
第四种

带立即执行的闭包初始化器的全局变量

class SingleFour {
    
    static var shared : SingleFour = {
         let instance = SingleFour()
        return instance
    }()
}

你可能感兴趣的:(iOS,swift,ios)