gpt4 book ai didi

iphone - NSClassFromString 会影响性能吗?

转载 作者:行者123 更新时间:2023-12-03 20:19:49 25 4
gpt4 key购买 nike

我想创建一个依赖于给定模型实例的类的 Controller

 -(BaseController *)getControllerForModel:(Model *)model
{
BaseController *controller = nil;
Class controllerClass = [BaseController class]; //the default value

//find the right controller
if ([model isMemberOfClass:[ModelClass1 class]])
controllerClass = [ConcreteController1 class];
else if ([model isMemberOfClass:[ModelClass2 class]])
controllerClass = [ConcreteController2 class];
else if ([model isMemberOfClass:[ModelClass3 class]])
controllerClass = [ConcreteController3 class];
...
else if ([model isMemberOfClass:[ModelClassX class]])
controllerClass = [ConcreteControllerX class];
else
Trace(TRACELEVEL_WARNING, @"Unrecognized model type: %@", NSStringFromClass([model class]));

//Now instantiate it with the model
controller = [[[controllerClass alloc] initWithModel:model] autorelease];
return slotController;
}

我想找到一个更灵活的解决方案,并想到有一个字典,它将模型类映射到 Controller 类,然后 NSClassFromString 可以给我正确的实例。

我的问题是:如果我多次使用NSClassFromString(例如一次100次),它是否会占用我的应用程序的大部分性能?或者它会和上述方法一样快吗?

最佳答案

通常,以这种方式使用 isMemberOfClass: 表明存在架构问题。

在这种情况下,为什么各种 Model 类不能简单地实现 +controllerClass 方法?

我可以理解 Nikolai 希望在模型之上维护 Controller 的分层,而模型不了解 Controller 。然而,我的经验是,任何具有模型的此类特定知识的控制层都会很快破坏这种隔离;模型层快速发展特定于 Controller 的行为。

因此,通过尝试维持这种分离而增加的复杂性是不值得的。

关于iphone - NSClassFromString 会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2915223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com