Runtime动态创建类

turboksiOS62

- (void)viewDidLoad {

    [super viewDidLoad];

    Class KSObj = objc_allocateClassPair([NSObject class], "KSStudent", 0);

    class_addIvar(KSObj, "name", sizeof(NSString *), log2(sizeof(NSString *)), @encode(NSString *));

    SEL sel = sel_registerName("other:");

    Method method = class_getInstanceMethod([ViewController class], @selector(other:));

    class_addMethod(KSObj, sel, method_getImplementation(method), method_getTypeEncoding(method));

    objc_registerClassPair(KSObj);

    //开始使用

    id kkk = [KSObj new];

    //给name赋值

    [kkk setValue:@"jack"forKey:@"name"];

    //获取name

    Ivar iv = class_getInstanceVariable(KSObj, "name");

    NSString* name =object_getIvar(kkk, iv);

    NSLog(@"%@",name);

    [kkk other:name];

}

-(void)other:(NSString*)name{

    NSLog(@"%s ---- %@",__func__,name);

}



返回列表

上一篇:RunLoop

下一篇:iOS的block

相关文章

RunLoop

RunLoop

RunLoop一、基础理论顾名思义1.    运行循环2.    在程序运行过程中循环做一些事情3.    是用户态和内核态之间的交互模式应...

iOS基于SceneKit的3D汽车改色

iOS基于SceneKit的3D汽车改色

基于SceneKit的汽车改色,需要修改模型文件可以去 https://www.turbosquid.com/ 自行下载,免费资源还挺多的。先上个效果图吧:核心代码: &...

iOS音视频之视频播放

iOS音视频之视频播放

由于MPMoviePlayerController与MPMoviePlayerViewController在iOS9.0之后被弃用,所以采用AVPlayer以及AVPlayerViewControll...

暗黑模式适配

暗黑模式适配

先上效果图:正常暗黑一:首先确定自己的主题色比如正常模式下显示紫色、暗黑显示下显示灰色。二:在Assets中新建颜色:创建颜色进行设置:设置颜色左边是正常模式的颜色、右边是暗黑模式下三:举例使用&nb...

iOS程序的内存布局

iOS程序的内存布局

    代码段:编译之后的代码    数据段:字符串常量:比如NSString * str = @“123”已初始化数据:已初始化的全局变量...

百度地图自定义marker

百度地图自定义marker

#import "HomeViewController.h"#import "PaopaoView.h"@interface HomeViewControlle...