美文网首页iOS Developer
Swift3 - 更加细分的访问控制级别

Swift3 - 更加细分的访问控制级别

作者: huhueggtest_tdp | 来源:发表于2016-09-02 18:30 被阅读145次

访问控制可以限定哪些代码你可以访问,哪些代码你不能访问。


测试环境

系统版本

10.11.5 Beta

Swift版本

Xcode8 beta 6(swift 3.0)


模块

在 Swift 中我们使用模块来管理代码,每个模块指定一个命名空间并强制指定模块外哪些部分的代码是可以被访问控制的。

模块就是常用的Framework或App bundle。为了实现某些通用的功能或封装一些常用的方法,我们常会将代码打包成Framework,这个Framework就被称为模块,不论它被引入到其它工程或者Framework,它里面的一切(属性、函数等)都属于这个模块。

前文介绍的Swift的包管理器最终提供到工程使用的就是Framework,这个就是模块。

访问级别

以下对访问级别的描述适用于Xcode8 beta 6及以后的Swift版本(在此之前有三个访问级别,分别为 publicinternalprivate)。

  • open
    可以访问自己模块或应用中源文件里的任何实体,别人也可以访问引入该模块中源文件里的所有实体。
    在模块之外, open 声明的成员变量和函数可以被override的。
    相当于原来的public,通常情况下,某个接口或Framework被外部使用时,将其设置为open级别。

  • public
    open的含义大致相同,但声明的成员变量和函数不能被override的。

  • internal
    可以访问自己模块或应用中源文件里的任何实体,但是别人不能访问该模块中源文件里的实体。不指定的话,默认的就是internal级别。
  • fileprivate
    可以用作隐藏某些功能的实现细节,作用域为当前源文件。
    相当于原来的private

  • private
    只能在当前作用域内发生作用,比起之前更加private
    同一文件里 extension 里也是不能访问的到 private 修饰的成员变量


用Swift开发Framework的iOSer,开始改代码吧~

相关文章

  • Swift3 - 更加细分的访问控制级别

    访问控制可以限定哪些代码你可以访问,哪些代码你不能访问。 测试环境 系统版本 10.11.5 Beta Swift...

  • Java中的访问控制符

    Java提供了4种访问控制级别 private 不加任何访问控制符的访问控制级别(default) protect...

  • Swift语法2.24(访问控制)

    访问控制(Access Control) 本文内容包括: 模块和源文件 访问级别 访问级别的基本原则默认访问级别S...

  • swift访问控制

    访问控制 在访问权限控制这块,Swift提供了5个不同的访问级别(以下是从高到低排列, 实体指被访问级别修饰的内容...

  • Swift 4.0 中的访问控制(Access Control)

    访问级别Swift 中提供了以下五种不同的访问级别。 访问控制语法 访问基本原则Swift 中的访问级别遵循一个基...

  • swift3访问控制

    从低到高的顺序为 private 仅在当前类访问 fileprivate 仅在当前swift源文件内可使用 int...

  • 19-Swift访问控制

    1.访问控制 在访问权限控制这块,Swift提供了5个不同的访问级别(以下是从高到低排列,实体指被访问级别修饰的内...

  • swift3访问权限详解

    转自:swift3访问控制 从低到高的顺序为 private 仅在当前类访问 fileprivate 仅在当前sw...

  • 【麦兜】Java基础知识巩固——面向对象(访问控制符和Java常

    访问控制符:private、protected、public,还有一个不加任何访问控制符的访问控制级别defaul...

  • 访问控制

    访问控制 Access Control 访问级别 实体是被访问级别修饰的内容绝大部分实体都是internal 修饰...

网友评论

    本文标题:Swift3 - 更加细分的访问控制级别

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