Create objective-c class instance by name?

前端 未结 4 1580
深忆病人
深忆病人 2020-11-28 02:30

Is it possible to create an instance of a class by name? Something like:

NSString* className = @\"Car\";
id* p = [Magic createClassByName:className];
[p turn         


        
4条回答
  •  心在旅途
    2020-11-28 03:20

    @interface Magic : NSObject
    + (id)createInstanceOfClass:(Class)classe;
    @end
    
    @implementation Magic
    
    + (id)createInstanceOfClass:(Class)classe
    {
        return [[classe alloc] init];
    }
    
    @end
    

    Then to use it:

    Car *car = [Magic createInstanceOfClass:[Car class]];
    [car engineTurnOn];
    

提交回复
热议问题