美文网首页
动态创建类

动态创建类

作者: hie | 来源:发表于2018-09-11 17:29 被阅读0次

//动态创建类

- (void)createClass{ 

  //创建类对 [NSObject class]:父类,"ZFCat":类名,0:所占字节数,一般写0

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

//属性名称

  NSString *name = @"name";    

    //添加属性 ,必须在注册类之前添加

  class_addIvar(ZFCat, name.UTF8String, sizeof(id), log2(sizeof(id)), @encode(id));  

     //添加方法  ,可在注册类之后添加

 class_addMethod(ZFCat, @selector(jump), (IMP)jump, "v@:");     

    //注册类   

objc_registerClassPair(ZFCat);      

     id cat = [ZFCat new];   

    [cat setValue:@"zf" forKey:name];    

    NSLog(@"name=%@",[cat valueForKey:name]);

    [cat performSelector:@selector(jump)];

}

void jump(){ 

  NSLog(@"跳");

}

相关文章

网友评论

      本文标题:动态创建类

      本文链接:https://www.haomeiwen.com/subject/dpvugftx.html