編寫高質量OC程式碼52建議總結:13.用“方法調配技術”除錯“黑盒方法”
//
// ViewController.m
// runtime--self
#import "ViewController.h"
#import <objc/runtime.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//交換類的兩個方法實現
[Person run];
[Person stop];
Method m1 = class_getClassMethod([Person class], @selector(run));
Method m2 = class_getClassMethod([Person class], @selector(stop));
method_exchangeImplementations(m1, m2);
NSLog(@"-----------------");
[Person run];
[Person stop];
}
@end
總結:
1.在執行期,可以向類中新增和替換所對應的方法實現。
2.使用另一份實現來替換現有的方法實現,“方法調配”,常用於向原有實現中新增新功能。
3.一般情況,只有除錯程式的時候才使用此方法。
相關文章
- 編寫高質量OC程式碼52建議總結:17.實現describtion方法C程式
- 編寫高質量OC程式碼52建議總結:16.提供“全能初始化方法”C程式
- 編寫高質量OC程式碼52建議總結:12.理解訊息轉發機制C程式
- 編寫高質量OC程式碼52建議總結:11.理解objc_msgSend的作用(訊息機制)C程式OBJGse
- [編寫高質量iOS程式碼的52個有效方法](九)塊(block)iOSBloC
- 編寫高質量iOS有效方法總結(一)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(一)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(五)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(二)iOS
- [編寫高質量iOS程式碼的52個有效方法](七)記憶體管理(上)iOS記憶體
- [編寫高質量iOS程式碼的52個有效方法](八)記憶體管理(下)iOS記憶體
- [編寫高質量iOS程式碼的52個有效方法](十)Grand Central Dispatch(GCD)iOSGC
- 編寫高質量程式碼:改善Java程式的151個建議(第4章:字串___建議52~55)Java字串
- 《Effective JavaScript 編寫高質量JavaScript程式碼的68個有效方法》JavaScript
- 我總結了寫出高質量程式碼的12條建議
- 每日10行程式碼52:編寫高質量python程式碼方法4——用輔助函式來取代複雜的表示式行程Python函式
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議41~46)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議47~51)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議31~35)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議36~40)Java物件
- 編寫高質量程式碼 改善Python程式的91個建議Python
- iOS 有效編寫高質量Objective-C方法(一)iOSObject
- iOS 編寫高質量Objective-C程式碼iOSObjectC程式
- [轉]高質量JAVA程式碼編寫規範Java
- 怎樣編寫高質量的java程式碼Java
- 編寫高質量的程式碼,從命名入手
- 一篇文章拿下《Effective Objective C 2 0編寫高質量iOS與OS X程式碼的52個有效方法》ObjectiOS
- 寫出高質量程式碼的10個建議
- 《編寫高質量程式碼:改善Java程式的151個建議》筆記Java筆記
- iOS-有效編寫高質量Objective-C方法-三iOSObject
- 編寫高質量程式碼
- iOS 編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(一)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(三)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(二)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(八)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(二)iOSObjectC程式