Swift学习日记-swift备忘录1

Swift - 协议

1.既可以定义属性,也可以定义方法
2.属性和方法,在protocol中都不能有默认实现
3.定义属性时必须指定属性时可读写/可读/可写 {get set}
4.默认情况下,被遵守协议的类/结构体等必须实现,如果只希望协议被类遵守,可以在协议名字后面加 :class
3.如果希望协议中的方法或者属性时可选,首先在protocol前加@objc 在可选的方法或属性前加@objc
4.协议的默认实现必须在协议的extension中提供默认实现
5.协议/结构体中类方法使用static关键字
6.只有协议中允许使用Self
7.where 限制协议遵守的类型**
8.associatedtype关键字来声明一个类型的占位符作为协议定义的一部分

Swift - 访问控制

访问权限 open > public > interal > fileprivate > private

private

访问级别所修饰的属性或者方法只能在当前类里访问

fileprivate

访问级别所修饰的属性或者方法在当前的swift源文件里可以访问

internal默认访问级别

访问级别所修饰的属性或者方法在源代码所在的整个模块都可以访问,如果是框架或者库代码,则在整个框架内部都可以访问,框架外部代码所引用是,则不可以访问。

public

可以被任何人访问,但其他module中不可以被override和继承,而在module内可以被override和继承

open

可以被任何人使用,包括override和继承

独立思考,不屈从世界,安静内心,疯子一样行动,不理会周遭的嘈杂,有节奏的行走在coding~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,528评论 0 4
  • 扩展 扩展就是向一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类...
    cht005288阅读 476评论 0 0
  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 914评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 今天,坐在电脑前一个小时 我迟迟决定不了要写什么话题 写人生,写励志,写鸡汤 太空太假,连我自己都感动不了 怎么感...
    高冷男孩会逗比阅读 437评论 1 3