IOS 协议的记录

ios Swift 协议

1
2
3
4
5
6
7
8
9
10
11
protocol xxx:class {}
protocol xxx{}
@objc protocol
三种方式,
1 完全swift 类型的协议, 继承class (或者 NSObjectProtocol)的类特性, 可以weak ,这个很重要不然容易循环引用,内存释放不掉
2 第二个正常的, 通用的,纯净的,但是因为weak 问题,所以我一般用第一种 用得多
3 第三个 对OC 开放, 也就有了OC 的特性, 也就可以weak 了,

swift 协议的可选协议
1 @objc 方式创建, 然后加个可选的参数

1
2
3
@objc protocol BottomBtnViewDelegate{
@objc optional func bottomBtnViewClick(_ index:Int)
}

2 swift 方式创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protocol xx:class{
func test()
}
extension xx{
func test(){
}
func test2(){
// 默认的实现方式, 然后重写这个就ok
}
}
// 哈哈 我自己还没这么写过,应该可以
Author

陈昭

Posted on

2016-10-13

Updated on

2021-12-27

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Kommentare

You forgot to set the shortname for Disqus. Please set it in _config.yml.