0

特定のメソッドが実行され、01 から 20 までの数値が返されるという、特に iOS アプリ開発の目的の c の状況があります。また、m01、m02、m03 などの名前の 20 の異なるメソッドがあります。

最初のメソッドが、最初のメソッドから返された数値に対応する別のメソッドを呼び出すようにコードをプログラムするにはどうすればよいですか?

このようなもの:

[self m[NSStringWithFormat=@"%i", myOutputFromMethod1];

誰かがこれを機能させるのを手伝ってくれますか?

4

4 に答える 4

5

を使用してセレクターの名前を取得し、 を使用しNSSelectorFromString([NSString stringWithFormat:@"m%i", myOutputFromMethod1])て実行できます[self performSelector:]

于 2013-06-13T05:00:33.023 に答える
2

戻り値に応じて何十ものメソッドを使用することは、間違いなく良いプログラミング方法ではありません (私が認識していない非常に特別な要件がある場合を除きます)。同じメソッドを呼び出すことができますが、パラメーターを渡すことができます。そのパラメーターをswitchステートメントに入れることができ、その後、パラメーターの各値に対して「ケース」を書くことができます。例えば

-(void) method_m :(int)mNum
{
    switch(mNum)
    {
        case 0:
            //your code for method 00
            break;
        case 1:
            //your code for method 01
            break;
        default:
            break;
    }
}

お役に立てば幸いです。

于 2013-06-13T05:39:09.607 に答える
2
SEL s = NSSelectorFromString([NSString NSStringWithFormat:@"m%i", myOutputFromMethod1]);
[anObject performSelector:s];
于 2013-06-13T05:01:41.310 に答える