美文网首页Swiftios常用功能
swift static与oc static

swift static与oc static

作者: 磊简单 | 来源:发表于2018-09-18 14:00 被阅读0次

    oc static

    可以放在全局变量前面,也可以放在局部变量前边
    放在全局变量前面,限定了全局变量的作用域(只能在当前文件)
    放在局部变量前面,不会改变变量的作用域,但是存储空间是以静态分配,而非默认的自动分配方式获得的,所以存储空间所在区域不同(一般来说,静态分配的存储空间于编译时在程序静态区分配,一次分配全程有效,而自动分配的存储空间则是于调用栈上飞配,只在调用时分配释放),且两次调用间变量始终保持一致(变量只会被初始化一次)

    swift static class

    static和class 表示 类型范围作用域 - 类型指的是class struct enum ,我们可以使用static来描述类型作用域,需要用类型名来调用该属性;class是专门用于修饰class类型的。

    • static
    static 可以修饰属性和方法,但所修饰的属性和方法不能被重写。
    
    • class
    类方法。
    class 可以修饰class类型的计算属性和方法,但是不能修饰存储属性,可以被重写。
    重写可以使用class关键字,也可以使用static。
    

    protocol

    static和protocol
    Swift中的class,struct,enum都可以实现某个指定的协议。如果我们想在protocol中定义一个类型作用域上的方法或者计算属性,应该使用哪个关键字?答案显而易见,肯定是static,因为static是通用的。
    注意:在使用protocol的时候,在enum和struct中仍然使用static进行修饰,在class中,class和static都可以使用。
    

    static 修饰方法或计算属性相当于 class final

    存储属性、计算属性、类型属性

    存储属性:用于存储一个常量或变量。
    计算属性:不直接存储值,而是通过get、set方法来取值或赋值。同时还可以对其他的属性行进行操作。
    类型属性:定义在类上的属性,用static来修饰属性,需要用类名来调用该属性。

    相关文章

      网友评论

        本文标题:swift static与oc static

        本文链接:https://www.haomeiwen.com/subject/kjzynftx.html