編寫高質量OC程式碼52建議總結:13.用“方法調配技術”除錯“黑盒方法”

viiimaus發表於2017-02-14

//
//  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.一般情況,只有除錯程式的時候才使用此方法。

          

相關文章