0

クラス A とクラス B の 2 つのクラスがあります。どちらもコントローラーで同じメソッドを呼び出すことができます。彼らが呼び出すメソッドは、CGPoint. 引数がどのクラスから来たかを判断する方法はありますか?

私は以下を使用してみました:

if ([point isKindOfClass:[_territoryPaths class]])
{
    NSMutableDictionary *territoryPaths = [_territoryPaths territoryPaths];
}

if ([piont class] == [_territoryPaths class])
{
    NSMutableDictionary *territoryPaths = [_territoryPaths territoryPaths];
}

pointCGPointメソッドが取り込む です。

4

1 に答える 1

5

ClassA または ClassB ではないクラスでこのメソッドを使用する場合、この状況に対処する最善の方法は、送信者を受け入れ、送信者の値に対して isKindOfClass を実行するようにメソッドを変更することです。

例えば:

- (void)someMethod:(id)sender withPoint:(CGPoint)point
{
    if ([sender isKindOfClass:[ClassA class]])
    {
        // Do class A stuff
    }
    else if ([sender isKindOfClass:[ClassB class]])
    {
        // Do class B stuff
    }
    else
    {
        // Unknown class
    }
}
于 2013-05-11T20:52:47.310 に答える