概念:
AOP:在軟件業(yè),AOP為Aspect Oriented Programming的縮寫(xiě)抖格,意為:面向切面編程,通過(guò)預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)咕晋。利用AOP可以對(duì)業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行隔離雹拄,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性掌呜,同時(shí)提高了開(kāi)發(fā)的效率滓玖。
主要的功能是:日志記錄,性能統(tǒng)計(jì)站辉,安全控制呢撞,事務(wù)處理,異常處理等等饰剥。
注意:AOP不是一種技術(shù)殊霞,實(shí)際上是編程思想。凡是符合AOP思想的技術(shù)汰蓉,都可以看成是AOP的實(shí)現(xiàn)
環(huán)境要求:
iOS 7 + 或 OS X 10.7 +
安裝
- 使用 CocoaPods 安裝
pod "Aspects" - 手動(dòng)安裝
把文件 Aspects.h/m 拖到工程中即可.
應(yīng)用:
Aspects 給 NSObject 擴(kuò)展了下面的方法:
EF519D9A-B69B-4183-B617-946973FBC237.png
參數(shù)枚舉:
AspectPositionAfter = 0, /// Called after the original implementation (default)
AspectPositionInstead = 1, /// Will replace the original implementation.
AspectPositionBefore = 2, /// Called before the original implementation.
AspectOptionAutomaticRemoval ///執(zhí)行過(guò)之后自動(dòng)刪除(不是按鈕點(diǎn)擊事件)
具體代碼:
1165F60E-6002-493A-A930-AD3D277E45BD.png
上面涉及到的EventPlist是新創(chuàng)建的plist文件绷蹲,設(shè)置方式如下:
6227CE87-2DF5-43E2-9C5D-F796E4F79B2A.png
調(diào)用:
B7B1B494-080A-45C5-9826-06FE700D712F.png