这真的很奇怪。我从我的视图中获取了一个CGFloat值并将其发送到我的viewController,它将把它传递给我的音频引擎。但是,CGFloat会在view和viewController之间以某种方式进行修改。完全难倒。
以下是视图中的方法
-(void)mod:(CGFloat)value
{
if(value < 0) value = 0.;
if(value > self.bounds.size.width - 10)value = self.bounds.size.width - 10.f;
value = value / (self.bounds.size.width - 10.f) ;
NSLog(@"value %g", value); ///prints a value between 0.0 - 1.0
[viewController mod:value forVoice:voiceToPlay];
}
打印介于0.0 - 1.0
之间的值然后在我的viewController中,这个方法接收它......
-(void)mod:(CGFloat)value forVoice:(NSUInteger)voice
{
NSLog(@"mod in view control %g", value);
[audioController mod:value forVoice:voice];
}
这会打印完全错误的数字,例如1.0842e-19,2,-2
这可能很简单,但我无法弄清楚它是什么!谢谢你的帮助。
答案 0 :(得分:0)
我是初学者,所以我不确定这一点,但是你能真正改变并将方法的输入值重新发送到另一种方法吗?你是不是应该在mod:方法中创建另一个CGFloat然后将该值发送给viewController?
答案 1 :(得分:0)
我猜你在编译这个程序时会收到一些警告(除非你禁用它们)。修复它们,这将消失。
具体来说,确保在mod: forVoice:
中声明(a)viewController.h
(并且声明与实现相匹配),以及(b)实现文件中包含viewController.h
在电话会议之前查看。