使用存储在变量中的类名称来调用Class方法?

我可能过度思考这个/浪费时间试图避免一些条件代码 – 所以我想我会问。 我已经看到了其他一些问题@这类事情,但他们使用的是php或其他语言。

在最基本的,我可以做这样的事情(我知道语法是错误的):

Class * var = @"Playback_Up"; // call Class method to get default settings NSMutableDictionary * dict = [var getPlaybackDefaults]; 

我为什么要这样做? 避免一堆条件。 我有一个应用程序,其中一个使用可以从一系列回放“类型”中选择 – 每个类型由“回放”类的子类处理。 将类名存储在数组中会很方便,然后在进行选择时(从tableView)调用所选类,创建它的实例,等等。

这可能还是我在这里挖洞?

第一行的正确语法是:

 Class var = NSClassFromString(@"Playback_Up"); 

剩下的很好,我比你想象的更频繁地使用这种技术。

(除了“Playback_Up”永远不应该是课程的名称。)


编辑:请注意Paul.s的评论如下。 如果您可以在编译时对类进行硬编码,则首选使用+class