objective-c - 为什么是 "(UIButton *)sender"而不是 "UIButton *sender"?

标签 objective-c ios pointers operator-precedence

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

- (IBAction)digitPressed:(UIButton *)sender {
   //...
}

最佳答案

在这种情况下,这与优先级无关。括号不是强制转换。

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

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

关于objective-c - 为什么是 "(UIButton *)sender"而不是 "UIButton *sender"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203718/

相关文章:

ios - 从 Parse iOS 检索对象

c - 数组数据类型内存分配

objective-c - 为什么我的 OCUnit 测试失败并返回 "code 138"?

ios - dyld : Symbol not found: _OBJC_CLASS_$_GTMMIMEDocument after migrating to Swift 4. 2 和 Firebase 5.8

objective-c - 在 cocoa 中,保证 block 或任务只运行一次的好方法是什么?

iphone - 在 CIFilter : getting empty image 中使用来自 CIColor 的 CIImage

ios - 如何知道哪一行导致异常?

IOS 5 在锁屏上显示自定义项目

dictionary - 在Dart中传递指向 map 的指针

c++ - 一个包含 3 个对象的类,它们有指向彼此的指针,以及一个用于传递对这些对象的引用的初始化列表。错误