Swift 系统学习 28 类的访问权限
2017-03-01 15:26
260 查看
import UIKit /** 本节主要内容 1.类的访问权限 */ //controller里面 let app = App(name: "Clarence") app.show() app.switchMode() app.show() app.switchMode() app.show() //UI.swift import Foundation import UIKit // internal enum Theme { case DayMode case NightMode } // public: 模块外可见(Contents.swift可见) // internal是默认的权限设置, 可以省略 // internal class UI { // 声明私有属性(App类不可见) // fontColor一定有值 private var fontColor: UIColor! private var backgroundColor: UIColor! var themeMode: Theme = .DayMode { didSet { // 赋值成功, 调用私有方法, 切换主题 self.changeTheme(themeMode: themeMode) } } // 对App可见 init() { self.themeMode = .DayMode self.changeTheme(themeMode: self.themeMode) } // App类不可见 private func changeTheme(themeMode: Theme) { switch themeMode { case .DayMode: fontColor = UIColor.black backgroundColor = UIColor.white case .NightMode: fontColor = UIColor.white backgroundColor = UIColor.black } } // public/internal func show() { print("The font color is \(fontColor == UIColor.white ? "White" : "Black")") print("The background color is \(backgroundColor == UIColor.white ? "White" : "Black")") } } //app.swift import Foundation // 很多个类型: 类/结构体/枚举 public class App { // 声明私有属性 private let ui = UI() public var name: String // 构造方法 public init(name: String) { self.name = name } // 切换模式方法(Content.swift文件可见) public func switchMode() { switch ui.themeMode { case .DayMode : ui.themeMode = .NightMode case .NightMode: ui.themeMode = .DayMode } } // show方法 public func show() { print("The app name is \(name)") ui.show() } }
相关文章推荐
- Swift 3 Access Levels 访问权限的学习
- Swift学习之 - 访问控制权限(fileprivate,private,internal,public,open)
- Linux基础知识学习笔记(一)--文件系统的权限管理
- 权限学习--BlueDavy之技术Blog漫谈权限系统之结尾篇(开源产品、个人观点、知识体系)
- 购物网站28:类型转换器---日期----配送方式----性别----订单状态----支付方式----性别----系统权限
- 系统服务访问控制的学习
- 启动apache后访问系统,提示没有权限访问目录,报403错误。
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- 基于角色访问控制的权限系统设计
- 基于角色访问控制的权限系统设计
- 【商业版】C# ASP.NET 通用权限管理系统组件源码中的数据库访问组件可以全面支持Access单机数据库了
- Windows系统没有权限访问网络(原创)
- [学习笔记]拥有权限的访问页面的实例
- 文件系统管理 之 文件和目录访问权限设置
- FreeBSD学习笔记28-pureftpd使用详解(3)-Pureftpd的权限控制
- 权限学习--BlueDavy之技术Blog漫谈权限系统之基于ACL的实现
- java中访问权限修饰符学习笔记
- 学习手册之MySQL存取权限系统
- linux系统管理学习笔记之八---linux文件与目录的管理及权限
- 如何设置Access访问msysobjects系统表权限