Iphone 创建滑块
我正在为我的滑块使用其他人的代码 他的代码是这样的Iphone 创建滑块,iphone,objective-c,cocoa-touch,slider,Iphone,Objective C,Cocoa Touch,Slider,我正在为我的滑块使用其他人的代码 他的代码是这样的 UISlider *slider = (UISlider *)sender; int number = [slider value]; NSString *string = [NSString stringWithFormat:@"%i", number]; label.text = string; 它显示滑块值,从0到100 这很有道理,只是我对第一行代码感到困惑,它是在=(UISlider*)发送方部分之后的部分 UISlider *sl
UISlider *slider = (UISlider *)sender;
int number = [slider value];
NSString *string = [NSString stringWithFormat:@"%i", number];
label.text = string;
它显示滑块值,从0到100
这很有道理,只是我对第一行代码感到困惑,它是在=(UISlider*)发送方部分之后的部分
UISlider *slider = (UISlider *)sender;
如果我理解正确,他将UISlider指向发送方,并将其存储到slider实例中
我想我的问题是,这里发生了什么?是否已分配UISlider*滑块实例。。这里的幕后到底发生了什么,其他类也可以这样做吗
谢谢你的回复 据我所知,当事件发生在UISlider的某个对象上时,上面的代码就会发生,因此,该代码位于“回调”方法中。此时,对象已经存在,您不需要再为它分配内存(就是那个对象,它实际上调用了这个方法);这家伙所做的一切就是将“sender”参数(这是任何回调(iAction?)方法的标准)强制转换为UISlider类型,确保他实际使用此类的对象。他这样对编译器说:“看,我知道这是UISlider的一个对象。请让我用一种标准的滑块方式来处理它。”
请纠正我,伙计们,如果我在什么地方错了。据我所知,上面的代码发生在UISlider的某个对象发生事件时,相应地,此代码在“回调”方法中。此时,对象已经存在,您不需要再为它分配内存(就是那个对象,它实际上调用了这个方法);这家伙所做的一切就是将“sender”参数(这是任何回调(iAction?)方法的标准)强制转换为UISlider类型,确保他实际使用此类的对象。他这样对编译器说:“看,我知道这是UISlider的一个对象。请让我用一种标准的滑块方式来处理它。”
如果我在什么地方错了,请纠正我。据我所知,发送方(在本例中)对事件负责,因为它调用的事件很可能是
iAction
。通常,发送方是一个非类型化的对象,可以表示任何类型的对象。在这种情况下,程序员确信它将被UISlider
对象调用。因此,类型转换是为了获得类型为UISlider
的对象。例如,也可以对UIButton
执行此操作,其中此行可以替换为UIButton*button=(UIButton*)发送器代码>据我所知,发送方(在本例中)对事件负责,因为它调用的事件很可能是iAction
。通常,发送方是一个非类型化的对象,可以表示任何类型的对象。在这种情况下,程序员确信它将被UISlider
对象调用。因此,类型转换是为了获得类型为UISlider
的对象。例如,也可以对UIButton
执行此操作,其中此行可以替换为UIButton*button=(UIButton*)发送器代码>Thank's我想这就是答案。是的,这会起作用,但value属性会给我一个错误,因为按钮不包含该属性。但我明白你的意思,我只是试过了。再次感谢。显然这对代码不起作用,但如果你这样做的话,你可以得到UIButton的所有属性和实例方法。谢谢,我想这就是答案。是的,那会起作用,除了value属性会给我一个错误,因为button不包含所述属性。但我明白你的意思,我只是试过了。再次感谢您。显然,这对这段代码不起作用,但是如果您使用它,您可以获得UIButton的所有属性和实例方法。