2

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

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

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

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

这是可能的还是我在这里自掘坟墓?

4

1 回答 1

5

第一行的正确语法是:

Class var = NSClassFromString(@"Playback_Up");

其余的都很好,我使用这种技术的频率比你想象的要高。

(除了“Playback_Up”当然不应该是一个类的名称。)


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

于 2012-04-06T23:56:35.310 回答