代码之家  ›  专栏  ›  技术社区  ›  Richard J. Ross III

目标C按类创建对象

  •  7
  • Richard J. Ross III  · 技术社区  · 14 年前

    我想知道如何创建指定 Class 在objective c中,运行时文档中是否缺少某些方法?如果是,那是什么?我希望能够做到以下几点:

    NSDictionary *types;
    
    -(id<AProtocol>) createInstance:(NSString *) name
    {
        if ((Class cls = [types objectForKey:name]) != nil)
        {
           return new Instance of cls;
        }
        else
        {
            [NSException raise:@"class not found" format:@"The specified class (%@) was not found.", name];
        }
    }
    

    Create object from NSString of class name in Objective-C .

    2 回复  |  直到 7 年前
        1
  •  19
  •   cobbal    14 年前

    一个简单的 [[cls alloc] init] 会成功的。

        2
  •  3
  •   Greg Sexton    14 年前

    正如科巴尔提到的 [[cls alloc] init] 这是惯例。这个 alloc 是一个静态类方法,在NSObject中定义,用于分配内存,init是实例构造函数。许多类提供了方便的构造函数,可以一步完成这项工作。例如:

    NSString* str = [NSString stringWithString:@"Blah..."];
    

    * 之后 NSString . 你基本上是在用C语言,所以指向对象的指针!

    分配 具有相应的 [instance release]

    return [[[cls alloc] init] autorelease];
    

    希望这有帮助。