在Objective-C,这是什么 “(UIButton的*)发件人” 的意思是,为什么它不 “的UIButton *发件人”?或者用一些NSObject代替UIButton。这更是一个关于星号的优先问题...为什么 “(UIButton的*)发件人”,而不是 “的UIButton *发件人”?
- (IBAction)digitPressed:(UIButton *)sender {
//...
}
在Objective-C,这是什么 “(UIButton的*)发件人” 的意思是,为什么它不 “的UIButton *发件人”?或者用一些NSObject代替UIButton。这更是一个关于星号的优先问题...为什么 “(UIButton的*)发件人”,而不是 “的UIButton *发件人”?
- (IBAction)digitPressed:(UIButton *)sender {
//...
}
这不是在这种情况下优先。括号不是演员。
这是ObjC中用于方法声明的语法,它表示名为sender
的参数的类型为UIButton *
。
星号去与UIButton的,因为他们一起命名参数的类型。在这种情况下,由于它是来自按钮的操作方法,因此您使用的是UIButton *。在一般情况下,只要调用者正确地调用它,方法可能具有任何类型的参数。 :)
您可能会发现这些问题的答案有趣:http://stackoverflow.com/questions/2189212/why-object-dosomething-and-not-object-dosomething/2214980#2214980和http://stackoverflow.com/问题/ 1304176/Objective-C的差之间-ID-和空隙/ 1304277#1304277 – bbum 2012-02-09 04:18:10