为什么"(UIButton*)发件人"而不是"UIButton*发件人"?

kda*_*ask 2 pointers objective-c operator-precedence ios

在Objective-C中,"(UIButton*)发送者"是什么意思,为什么它不是"UIButton*sender"?或者一些NSObject代替UIButton.这更像是关于星号优先级的问题......

- (IBAction)digitPressed:(UIButton *)sender {
   //...
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*tto 6

在这种情况下,这不是优先权.括号不是演员.

这是ObjC中用于方法声明的语法,它表示被调用的参数sender是类型UIButton *.

星号与UIButton一起使用,因为它们一起命名参数的类型.在这种情况下,由于它是来自按钮的动作方法,因此您使用的是UIButton*.当然,在一般情况下,只要调用者正确地调用它,方法就可以具有任何类型的参数.:)