liangtong


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Swift Access Control

发表于 2016-12-05 | 分类于 iOS | 阅读次数:

​
​ 访问控制可以限定其他源文件或模块中的代码对你的代码的访问级别。这个特性可以让我们隐藏代码的一些实现细节,并且可以为其他人可以访问和使用的代码提供接口。

你可以明确地给单个类型(类、结构体、枚举)设置访问级别,也可以给这些类型的属性、方法、构造器、下标等设置访问级别。协议也可以被限定在一定的范围内使用,包括协议里的全局常量、变量和函数。
Swift 不仅提供了多种不同的访问级别,还为某些典型场景提供了默认的访问级别,这样就不需要我们在每段代码中都申明显式访问级别。其实,如果只是开发一个单一目标的应用程序,我们完全可以不用显式声明代码的访问级别。

阅读全文 »

Swift Protocols

发表于 2016-12-02 | 分类于 iOS | 阅读次数:

​ 协议 定义了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西的一个蓝图。类、结构体或枚举都可以遵循协议,并为协议定义的这些要求提供具体实现。任何类型能够满足某个协议的要求,就可以说该类型遵循这个协议。
除了遵循协议的类型必须实现的要求外,还可以对协议进行扩展,通过扩展来实现一部分要求或者实现一些附加功能,这样遵循协议的类型就能够使用这些功能。

协议语法

协议的定义方式与类、结构体和枚举的定义非常相似:

1
2
3
protocol SomeProtocol {
// protocol definition goes here
}

要让自定义类型遵循某个协议,在定义类型时,需要在类型名称后加上协议名称,中间以冒号(:)分隔。遵循多个协议时,各协议之间用逗号(,)分隔:

1
2
3
struct SomeStructure: FirstProtocol, AnotherProtocol {
// structure definition goes here
}

拥有父类的类在遵循协议时,应该将父类名放在协议名之前,以逗号分隔:

1
2
3
class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol {
// class definition goes here
}
阅读全文 »

Swift Generics

发表于 2016-12-02 | 分类于 iOS | 阅读次数:

​
​ 泛型代码让你编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用一种清晰和抽象的方式来表达代码的意图。

泛型所解决的问题

下面是一个标准的非泛型函数 swapTwoInts(::),用来交换两个 Int 值:

1
2
3
4
5
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
阅读全文 »
1…101112…20
liangtong

liangtong

Keep hungry keep foolish!

59 日志
7 分类
17 标签
GitHub E-Mail 微博 知乎
友情链接
  • lidm1989
© 2016 — 2018 liangtong
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4