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 に答える