Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 到达';标签';发送方对象的属性_Iphone_Ios_Xcode - Fatal编程技术网

Iphone 到达';标签';发送方对象的属性

Iphone 到达';标签';发送方对象的属性,iphone,ios,xcode,Iphone,Ios,Xcode,我创建了一个像这样的iAction:-(iAction)按钮:(id)发送者并使用interface builder将其连接到ui按钮,问题是我无法执行类似NSLog(@“%d”,sender.tag)的操作编译器给我的语法错误是,类型为id的对象中不存在标记属性。。。但是,当我执行类似于NSLog(@“%@”,sender)的操作时控制台显示有关按钮及其标签的信息。。。所以问题是:如何通过sender对象访问UIButton的tag属性?您是否尝试过强制转换sender?例如: NSLog(@

我创建了一个像这样的
iAction
-(iAction)按钮:(id)发送者
并使用interface builder将其连接到
ui按钮
,问题是我无法执行类似
NSLog(@“%d”,sender.tag)的操作编译器给我的语法错误是,类型为
id
的对象中不存在标记属性。。。但是,当我执行类似于
NSLog(@“%@”,sender)的操作时控制台显示有关按钮及其标签的信息。。。所以问题是:如何通过sender对象访问
UIButton
的tag属性?

您是否尝试过强制转换
sender
?例如:

NSLog(@"%d", ((UIButton *)sender).tag);

您是否尝试过铸造
发送者
?例如:

NSLog(@"%d", ((UIButton *)sender).tag);

您必须强制转换它,因为编译器不知道对象的类型(因此id类型),但运行时会知道

所以,它类似于:

NSLog(@"%d", [(UIButton*)sender tag]);

您必须强制转换它,因为编译器不知道对象的类型(因此id类型),但运行时会知道

所以,它类似于:

NSLog(@"%d", [(UIButton*)sender tag]);

与强制转换不同的是,它通常使代码更清晰,只是为了在操作声明中更具体:

 -(IBAction) buttonTapped:(UIButton*)sender;

您可以使用UIButton、UIControl、UIView或您需要的任何特定级别

与强制转换不同,它通常会使更干净的代码在动作声明中更加具体:

 -(IBAction) buttonTapped:(UIButton*)sender;
您可以使用UIButton、UIControl、UIView或您需要的任何特定级别