如何检测参数来自哪个类

时间:2013-05-11 20:44:37

标签: objective-c oop

我有两个类,A类和B类。它们都可以在控制器中调用相同的方法。他们调用的方法采用CGPoint。有什么方法可以确定论证来自哪个类?

我尝试过使用以下内容:

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

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

point是该方法所接受的CGPoint

1 个答案:

答案 0 :(得分: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
    }
}