Objective c 什么';在Obj-C中设置对象通信的简单方法是什么?
我试图将滑块值从控制器对象发送到模型对象的方法。后者在单独的文件中实现,我有适当的头文件。我认为问题在于,我不确定如何实例化接收器,以便为控制器生成一个工作方法 这是控制器的方法Objective c 什么';在Obj-C中设置对象通信的简单方法是什么?,objective-c,oop,methods,controller,Objective C,Oop,Methods,Controller,我试图将滑块值从控制器对象发送到模型对象的方法。后者在单独的文件中实现,我有适当的头文件。我认为问题在于,我不确定如何实例化接收器,以便为控制器生成一个工作方法 这是控制器的方法 -(iAction)setValue:(id)滑块{[Model setValue:[slider floatValue]];} @implementation Model -(void)setValue:(float)n{ printf("%f",n); } @end 我得到的是“Model”可能不会响应“
-(iAction)setValue:(id)滑块{[Model setValue:[slider floatValue]];}
@implementation Model
-(void)setValue:(float)n{
printf("%f",n);
}
@end
我得到的是“Model”可能不会响应“+setValue”警告,并且我的控制台中没有输出
任何洞察都值得赞赏。您应该首先分配模态,因为该方法是实例方法,不能用作类(静态)方法 使用Model*modelObject=[[Model alloc]init];
[modelObject设置值:2] 如果这对项目有意义,另一种方法是1)在nib文件中添加对象控制器2)将该对象控制器的类设置为模型类3)在模型类中为滑块创建实例变量:float sliderFloatValue 4)为float:@属性创建访问器(readwrite,assign)浮动滑块浮动值@综合sliderFloatValue;5) 将slider值绑定到模型类的sliderFloatValue上我认为不能包含类似model*modelObject=[[model alloc]init]的内容;在实例变量声明中?如果我错了,请纠正我。另外,我的参数是一个滑块值,而不是一个普通的2。因此,我正在寻找一种模型类实例化slider值的方法。我刚刚输入了一个示例值,您可以将slider.value而不是2。如果我理解正确,您建议这样做吗@接口模型{float-sliderFloatValue;}@end@implementation-Model-(void)setValue:(float)n{printf(“%f”,n);}@end@interface-Controller:NSObject{Model*变量;}@end@implementation-Controller-(iAction)setValue:(id)滑块{[variable setValue:[slider floatValue]];}@end