我在 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;
通常,采用发送方参数的方法将类型命名为senderas id。id是通用对象指针。该代码的重点是将发送者的类型转换为UISlider*,以便您可以在其上调用 UISlider 的方法而不会生成编译器警告。