当你在Swift编写一个类时,默认其中任何属性,方法都能被外部访问的。有的时候我们不希望属性或方法被外部访问,希望私有化。

在swfit用于访问控制的有三个关键字。

  • public:公共访问,允许在任何源文件中使用其定义模块。如你使用XCTest测试某个类时,就需要在类前添加public。
  • internal:swift默认访问控制,允许在项目内访问。
  • private:私人访问,只能在当前类中访问。如果是在class前添加,则只能是当前文件访问。

举例说明:

public class SomePublicclass {          // 明确 public class
    public var somePublicProperty = 0    // 明确 public class 成员
    var someInternalProperty = 0         // 默认 internal class 成员
    private func somePrivateMethod() {}  // 明确 private class 成员
}

class SomeInternalClass {               // 默认 internal class
    var someInternalProperty = 0         // 默认 internal class 成员
    private func somePrivateMethod() {}  // 明确 private class 成员
}

private class SomePrivateClass {        // 明确 private class
    var somePrivateProperty = 0          // 默认 private class 成员
    func somePrivateMethod() {}          // 默认 private class 成员
}

其他

参考资料

The Swift Programming Language (Swift 2.1)

文档修改记录

时间 描述
2015-11-1 根据 The Swift Programming Language (Swift 2.1)中的Classes and Structures总结

版权所有:http://blog.csdn.net/y550918116j

Swift访问控制(Access Control)的更多相关文章

  1. ios – 为什么在Swift中使用私有属性/方法并不常见

    为什么在Swift/Cocoa中你很少看到私有访问器用于你不希望程序的其他部分访问的属性?有人可以如此善良并解释一般的概念访问器吗?

  2. Swift 新特性 - 访问控制Access Control

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framewordk或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。通常情况下,某个接口或Framework作为内部结构使用时,你可以将其设置为internal级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:除非有特殊的说明,否则实体都使用默认的访问级别internal,可以查阅默认访问级别这一节。

  3. [翻译]Swift编程语言——访问控制

    Protocolscanberestrictedtoacertaincontext,ascanglobalconstants,variables,andfunctions.除了提供访问控制的多种级别,Swfit通过提供默认访问级别来限制需要指定明确访问级别的需要。模块和源文件Swfit的访问控制模型是基于模块和源文件概念的。访问级别Swift提供了三种访问级别。Private限制只能在实体对象的定义文件使用它们。Public是最高的访问级别,Private是最低的访问级别。下文会涵盖针对Swfit语言的不

  4. 2015年2月到2015年6月8日2.0发布Swift主要更新

    存放的元素需要遵循hashable协议。调用一个抛出错误的函数/方法/闭包,前面要用try。捕获和处理错误do-catch格式:do{尽量确保能捕获所有错误。catch不指定匹配模式将匹配所有错误。调用,不必处理错误。如有错误发生,会导致运行时错误。多个defer语句按照定义顺序倒叙执行。

  5. Swift学习之 访问控制

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framework或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。Public为最高级访问级别,Private为最低级访问级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:publicclassSomePublicclass{}internalclassSomeInternalClass{}privateclassSomePrivateClass{

  6. Swift学习笔记系列——24访问控制

    Swift学习笔记系列——访问控制访问控制的对象单个的类、结构体和枚举属于1的属性、方法、构造方法和下标协议的适用范围模块和源文件访问控制的基础模块一系列代码,Xcode中的一个构造目标源文件单独的源代码文件三种访问级别public本模块的任意源文件内可以访问导入所在模块的其他模块的源文件可以访问Internal默认的访问级别同一模块的任意源代码中都可以访问Private同一源文件可以访问访问级别的指导原则衍生物的访问级别不能高于母体。

  7. Swift访问控制(Access Control)

    当你在Swift编写一个类时,默认其中任何属性,方法都能被外部访问的。在swfit用于访问控制的有三个关键字。如你使用XCTest测试某个类时,就需要在类前添加public。internal:swift默认访问控制,允许在项目内访问。private:私人访问,只能在当前类中访问。

  8. Swift 的访问控制private,internal,public

    在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访问权限的控制,不是基于类的,而是基于文件的。如果是App代码,也是在整个App代码,也是在整个App内部可以访问。

  9. Swift新特性 -- 访问控制Access Control

    模块和源文件Swift中的访问控制模型基于模块和源文件这两个概念。在Swift中,Framewordk或Appbundle被作为模块处理。访问级别Swift提供了三种不同的访问级别。通常情况下,某个接口或Framework作为内部结构使用时,你可以将其设置为internal级别。访问控制语法通过修饰符public、internal、private来声明实体的访问级别:除非有特殊的说明,否则实体都使用默认的访问级别internal,可以查阅默认访问级别这一节。

  10. Swift 最佳实践规范

    即便如此,过度的冗余也会失去Swift的重要特性:类型推断。最佳实践1.命名正如SwiftProgrammingLanguage中的类型名称都是以大驼峰命名法命名的。Apple能够并将会改变由Objective-Cframeworks转换过来的Swift的参数类型。我们应有意地指定你的选项并依赖Swift去推断类型,减少在这种情况下程序中断的风险。反之,main的实例定义不应该指向定义在超出mainSwift文件范围的扩展的元素。

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部