0

我在 ios 教程中看到过这个语句。我可以知道这个语句的含义。这是否意味着将 sender 对象的 velue 指向另一个对象 s。

UISlider *s=(UISlider *)sender;

任何人都可以帮助我。在此先感谢

4

3 回答 3

1

它的类型转换senderUISlider*. 你告诉编译器“相信我,我知道sender是一个UISlider*”。一旦分配给s,那么您可以sUISlider没有改进类型检查 (if id) 且没有警告 (ifsender是指定类型的 objc 对象) 的情况下使用。如果它不是 a UISlider,那么您的程序可能会在运行时遇到错误。

另请注意,sender它通常与执行操作的对象/控件相关联,并且通常使用 type 声明id,例如- (IBAction)performSomeAction:(id)sender. 在那种情况下,UISlider * s = (UISlider*)sender;是多余的。我喜欢更简单的UISlider * s = sender;

于 2012-11-15T07:14:12.750 回答
0

It's typecasting. Here the sender is typecast-ed to type UISlider.

It's similar to C Syntax,

int x = (int)aValue;
于 2012-11-15T08:15:21.477 回答
0

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

于 2012-11-15T06:53:36.240 回答