美文网首页
Rumtime-object_setClass

Rumtime-object_setClass

作者: linbj | 来源:发表于2018-04-26 19:44 被阅读12次

    object_setClass将一个对象设置为别的类类型,返回原来的Class

    /** 
     * Sets the class of an object.
     * 
     * @param obj The object to modify.
     * @param cls A class object.
     * 
     * @return The previous value of \e object's class, or \c Nil if \e object is \c nil.
     */
    OBJC_EXPORT Class object_setClass(id obj, Class cls) 
         __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
    
    
    #import "ViewController.h"
    #import <objc/runtime.h>
    #import "Person.h"
    #import "Dog.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        
        Person * p1 = [[Person alloc] init];
        
        NSLog(@"p1 - %@", [p1 class]);
        
        Class c1 = object_setClass(p1, [Dog class]);
        
        NSLog(@"c1 - %@", [c1 class]);
        NSLog(@"p1 - %@", [p1 class]);
        
    }
    
    image.png

    搬运自object_setClass

    相关文章

      网友评论

          本文标题:Rumtime-object_setClass

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