我在 ios 教程中看到过这个语句。我可以知道这个语句的含义。这是否意味着将 sender 对象的 velue 指向另一个对象 s。
UISlider *s=(UISlider *)sender;
任何人都可以帮助我。在此先感谢
我在 ios 教程中看到过这个语句。我可以知道这个语句的含义。这是否意味着将 sender 对象的 velue 指向另一个对象 s。
UISlider *s=(UISlider *)sender;
任何人都可以帮助我。在此先感谢
它的类型转换sender
为UISlider*
. 你告诉编译器“相信我,我知道sender
是一个UISlider*
”。一旦分配给s
,那么您可以s
在UISlider
没有改进类型检查 (if id
) 且没有警告 (ifsender
是指定类型的 objc 对象) 的情况下使用。如果它不是 a UISlider
,那么您的程序可能会在运行时遇到错误。
另请注意,sender
它通常与执行操作的对象/控件相关联,并且通常使用 type 声明id
,例如- (IBAction)performSomeAction:(id)sender
. 在那种情况下,UISlider * s = (UISlider*)sender;
是多余的。我喜欢更简单的UISlider * s = sender;
。
It's typecasting.
Here the sender is typecast-ed to type UISlider
.
It's similar to C
Syntax,
int x = (int)aValue;
通常,采用发送方参数的方法将类型命名为sender
as id
。id
是通用对象指针。该代码的重点是将发送者的类型转换为UISlider*
,以便您可以在其上调用 UISlider 的方法而不会生成编译器警告。