使用sender来识别ios中调用方法的对象

时间:2012-09-04 20:19:30

标签: objective-c cocoa-touch ios5

我是新手,所以提前感谢你们的任何帮助。

我只是在iOS中进行一些练习,我有两种不同的东西在调用相同的例程。

这些消息调用中的每一个都通过发件人传递。其中一个是在UIButton时调用的touchUpInside,其中一个是在UISegmentedControl时调用的valueChanges

我需要在同一方法中略微区别地处理初始部分,我知道不知何故我使用发件人。

我需要做的是询问发件人是UIButton还是发件人是UISegmentedControl

我试过

if  ([sender isKindOfClass:UISegmentedControl]) { ... }

if ([sender isKindOfClass:UIButton]) { ... }

两者都像这样抛出一个错误:

Unexpected interface name "UIButton": expected expression

所以这显然是错误的。

2 个答案:

答案 0 :(得分:4)

[sender isKindOfClass:UISegmentedControl]

应该是:

[sender isKindOfClass:[UISegmentedControl class]]

答案 1 :(得分:1)

请注意,您还可以简单地将sender与链接到UI对象的IBOutlet变量进行比较。或者,您可以提供UI对象tag和测试sender.tag