首页 > swift中NSObject的问题,代码看不懂

swift中NSObject的问题,代码看不懂

swift小白一个,问一个可能很菜鸟的问题:
问题在代码注释中写出来了

示例代码如下

class Settings: NSObject {

    static let defaultSettings = Settings() // 1. defaultSettings从未被使用,在此处定义的意义是什么?2. Settings()是初始化这个类吗,它是否是一个单例模式?
    
    let defaultButtonColor: ColorScheme
    
    override init() {
        self.defaultButtonColor = Settings.loadColorScheme("DefaultButton", data: colors) // 3.这里为什么可以直接调用 Settings? 4. 在别的文件中没有import这个文件,为什么一样可以直接调用Settings
        
        ... //do something
        
    }

    static func loadColorScheme(name: String, data: NSDictionary) -> ColorScheme {
    
        ... // do something
    }
}

这就是一个标准的Swift单例Swift实现,楼主可以去看一下Swift单例的实现。
同时还可以了解一下static和class关键字,声明静态变量和静态方法。


  1. defaultSettings是Settings类的单例,类似于standardUserDefaults之于NSUserDefaults,一旦初始化就不会改变,始终指向这个对象

  2. Settings()是调用init()方法构造一个单例对象

  3. 类方法无需实例化即可使用

  4. Swift中同一module中可以直接互相访问,无需显式包含

【热门文章】
【热门文章】