diff --git "a/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C.md" "b/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C.md"
index 23b29c2..fedc193 100644
--- "a/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C.md"
+++ "b/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C/Swift\345\255\246\344\271\240\357\274\232Swift\344\270\216Objective-C.md"
@@ -17,7 +17,8 @@
- [2.控制流](#2)
- [3.函数](#3)
- [4.类与初始化(Initializers)](#4)
-
+- [5.枚举与结构体](#5)
+- [6.协议(Protocols)](#6)
1.变量,常量,属性(property)和实例变量(instance variable)
@@ -671,7 +672,7 @@ if let thisSementTitle = dataSource?.titleFroSegmentAtIndex?(index){
}
~~~
- 我们也能够用这个特性来组织我们的代码结构,如下面的代码所示,将UITableViewDataSource的实现移到了Extension。使代码更清晰。
+ 我们还能够用这个特性来组织我们的代码结构,如下面的代码所示,将UITableViewDataSource的实现移到了Extension。使代码更清晰。
~~~swift
// MARK: - UITableViewDataSource
@@ -680,7 +681,39 @@ if let thisSementTitle = dataSource?.titleFroSegmentAtIndex?(index){
}
~~~
+3. `Protocol Oriented Programming`
+
+ 随着Swift2.0的发布,面向协议编程正式也加入到了Swift的编程范式。Cool.
+
+ 这种编程方式通过怎样的语法特性支撑的呢?
+
+ 那就是我们能够对协议进行扩展,也就是我们能够提供协议的默认实现,能够为协议添加新的方法与实现。
+
+ 用前面的myProtocol为例子,我们在Swift里这样为它提供默认实现。
+
+ ~~~swift
+ extension myProtocol{
+ func hello() -> String {
+ return "hello world!"
+ }
+ }
+ ~~~
+
+ 我们还能对系统原有的protocol进行扩展,大大增强了我们的想象空间。Swift2.0的实现也有很多地方用extension protocol的形式进行了重构。
+
+ 面向协议编程能够展开说很多,在这里这简单地介绍了语法。有兴趣的朋友可以参考下面的资料:
+
+ [Session 408: Protocol-Oriented Programming in Swift](https://developer.apple.com/videos/wwdc/2015/?id=408)
+
+ [IF YOU'RE SUBCLASSING, YOU'RE DOING IT WRONG.](http://krakendev.io/blog/subclassing-can-suck-and-heres-why)
+
+
+7.Swift与Cocoa
+
+
+
+
--