美文网首页
swift 权限控制学习

swift 权限控制学习

作者: 夜殇丶夜逝 | 来源:发表于2016-04-19 12:14 被阅读65次

    访问控制可以限定你在源文件或者模块中访问代码的级别。

    注意:
    为方便起见,在代码中可以设置访问级别的它们(属性、基本类型、函数等)在下面的章节中我们称之为实体。

    模块和源文件

    swift中的访问控制模型基于模块和源文件这两个概念。
    模块指的是:framework或者app bundle。
    源文件指的是:swift中的swift file,就是编写swift代码的文件, 它通常属于一个模块。通常一个源文件中包含一个类,在类中包含函数、属性等实体。

    访问级别

    在swift中,访问级别头如下使用原则:访问的统一性。例如:

    • 一个public访问级别的变量,不能将它的类型定义为internal和private的类型。 因为变量可以被任何人访问, 但是定义它的类型不可以,所以这样会出错。
    • 函数的访问级别不能高于它的参数、返回类型的访问级别。 因为如果函数定义为public而参数或者返回值类型定义为internal或者private, 就会出现函数可以被任何人访问,但是它的参数或者返回类型不可以。

    默认访问级别

    代码中所有的实体, 如果不明确的定义其访问级别, 那么它默认为internal级别。在大多数情况下,我们不需要明确的设置实体的访问级别, 因为我们大多数时候都是在开发一个app bundle。

    单目标应用程序的访问级别

    当你在编写一个单目标应用程序时, 该应用程序的所有功能都是为该应用服务的, 不需要提供给其他应用或者模块使用, 所以我们不用明确的设置访问级别, 使用默认的访问级别internal即可。 但是如果你愿意, 你也可以使用private级别,隐藏一些功能实现的细节。

    framework的访问级别

    当你在开发framework时,就需要吧一些实体定义为public级别, 以便其他导入该framework后可以正常使用其功能。这些被你定义为public的实体,就是这个framework的api。

    相关文章

      网友评论

          本文标题:swift 权限控制学习

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