Objective-C从发件人处获取项目

时间:2016-01-14 15:32:48

标签: objective-c

我在这里有这个方法:

- (IBAction)checkBoxTapped:(id)sender forEvent:(UIEvent*)event
{

    NSLog(@"%@", sender);
}

这是发件人返回的内容......

enter image description here

我的问题是如何获得_checked

的值

复选框是一个类

请帮助

2 个答案:

答案 0 :(得分:1)

如果没有看到界面,我们只能猜出该属性的getter方法是什么。因为它是BOOL,并且遵循惯例,它可能被称为isChecked,因为它的可能声明为:

 @property (readonly, getter=isChecked) BOOL checked;

因此,只需访问isChecked方法(NSAssert()完全是可选的):

NSAssert([sender isKindOfClass:[Checkbox class]], @"Expected a Checkbox instance");
Checkbox *checkbox = (Checkbox *)sender;
if (checkbox.isChecked) {
    // Do thing
}

答案 1 :(得分:0)

您可以在方法签名中将id替换为Checkbox类:

- (IBAction)checkBoxTapped:(Checkbox *)sender forEvent:(UIEvent*)event {
    NSLog(@"%@", sender.checked ? @"Checked" : @"Not checked");
}

可能您不会将此方法连接到另一个不是Checkbox的控件。

此外,您需要将checked属性移动到Checkbox类的头文件(公共接口)