国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

runtime 動態(tài)添加方法實(shí)現(xiàn)方法懶加載

2019-11-06 10:03:37
字體:
供稿:網(wǎng)友

#import <Foundation/Foundation.h>

@interface Dog : NSObject

@end _______________________________________________

#import "Dog.h" #import <UIKit/UIKit.h> #import <objc/message.h>

@implementation Dog

//當(dāng)類方法或?qū)ο蠓椒]有實(shí)現(xiàn)就會調(diào)用這兩個方法中的一個 //處理類方法 //+(BOOL)resolveClassMethod:(SEL)sel //處理對象方法 //+(BOOL)resolveInstanceMethod:(SEL)sel

+(BOOL)resolveInstanceMethod:(SEL)sel {

NSLog(@"%@方法沒有實(shí)現(xiàn)",NSStringFromSelector(sel));if (sel == @selector(wangwangwang:)) {//動態(tài)添加方法/* cls: 類類型 name: 方法編號 imp: 方法實(shí)現(xiàn),函數(shù)指針 types: 函數(shù)類型 C字符串(Code)void === "v" */class_addMethod([Dog class], sel, (IMP)wangwangwang, "v@:@");} else if( sel ==@selector(wangwangwang1) ){ //參數(shù)意義具體參考官方文檔 class_addMethod([Dog class], sel, (IMP)wangwangwang1, "v@:");}return [super resolveClassMethod:sel];

}

void wangwangwang(id self, SEL _cmd,id obj) {

NSLog(@"帶參數(shù)%@",obj);

}

void wangwangwang1(id self, SEL _cmd) {

NSLog(@"不帶參數(shù)");

}

@end _______________________________________________ 調(diào)用 #import "HJViewController.h" #import "Dog.h" @interface HJViewController ()

@end

@implementation HJViewController

- (void)viewDidLoad { [super viewDidLoad];

//方法懶加載 動態(tài)添加方法Dog *dog = [[Dog alloc]init];[dog performSelector:@selector(wangwangwang1)];[dog performSelector:@selector(wangwangwang:) withObject:@"汪汪汪"];

}

@end


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新巴尔虎右旗| 蒙阴县| 临沧市| 嘉义市| 福安市| 兴海县| 南华县| 康平县| 华宁县| 北安市| 瑞安市| 巢湖市| 旌德县| 阳城县| 巨野县| 锡林浩特市| 南昌市| 庆阳市| 得荣县| 邹城市| 土默特右旗| 嘉善县| 东辽县| 舞阳县| 建湖县| 北碚区| 桓仁| 锡林浩特市| 乐山市| 沽源县| 明光市| 灵川县| 玉溪市| 巫山县| 清镇市| 连州市| 河南省| 深水埗区| 米林县| 阳谷县| 古交市|