传递时参数丢失值

时间:2009-08-21 14:47:40

标签: iphone

我确信这很简单,但我现在已经盯着它了一下,我认为我需要的只是一双新眼睛来看它,因为我的猫没有一个整体很多iPhone编程经验我转向你。

我在传递变量之前将一个类型为float的变量从类(UIView)传递给另一个类(UIViewController),它的值是正确的但是当它到达函数时它会丢失它的值,它显示为0或者-2我不知道为什么。就像我说的那样,我确信它很简单,但我只需要一双新眼睛来看待它

代码低于

  //inside UIView
-(void)UpdateFloat
{
myFloat = myFloat + 0.01;
}



    -(void)RemoveView
{
//Function Call
[viewController myFunction:myFloat];
}

//Function
-(void)myFunction:(float)myFloat
{
[myView removeFromSuperview];
[self.view addSubview:myOtherView];
[myOtherView anotherFunction:myFloat];

}

浮点数由计时器更新,当UIView进行函数调用时,浮点数的值是正确的(通常约为15.67)

任何帮助将不胜感激

提前谢谢你, BWC

3 个答案:

答案 0 :(得分:1)

如果你的浮动真的是一个浮点数,我敢打赌其他地方还有其他东西正在操纵那个值,而不是消息发送。搜索该变量名称的每次出现。

当你不小心对浮动进行整数数学运算时,你会看到这样的事情发生(这很容易)。检查并确保您的花车是浮动的,并且所有的数学运算都是用浮点数完成的,并且没有进行数学运算。

它也可能是与范围相关的事情,而你却得到了一个不同的myFloat,很难在没有所有可用资源的情况下判断。

答案 1 :(得分:0)

好吧,我不明白你,因为你说你从UIView传递到UIViewController。但是在你的代码中,你首先在UIViewController中调用一个函数,顺便说一下,这个函数必须是[self myFunction:myFloat],在那个函数中你调用你的UIView。

答案 2 :(得分:0)

好的伙计们,

我想我已经弄清楚为什么浮子没有保留它的价值,但原因也令我感到困惑。

当我在UIView Xcode中调用ViewControllers函数时,显示没有方法的警告,没有匹配签名的方法将假定返回(id)并传递'...'作为参数

我理解这个警告意味着什么,但我不明白的是我在viewController的标题中声明了方法

-(void)myFunction:(float)myFloat;

我还有另一个视图调用视图控制器的函数,它没有显示那个警告...我很确定这是浮动没有保留它的价值的原因但我不知道为什么它可以看不到方法签名