2009-08-21 162 views
1

我確定這是簡單的,但我現在一直在盯着它,我想我需要的只是一雙新鮮的眼睛來看它,因爲我的貓不會在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

+0

我希望你不要得罪你的貓! – 2009-08-21 14:52:23

+0

顯示調用myFuction(它周圍的代碼,以及如何分配浮動) – Daniel 2009-08-21 14:53:30

回答

1

如果你的浮點數真的是一個浮點數,我敢打賭還有別的東西正在其他地方操縱這個值,這不是消息發送。搜索每個出現的變量名稱。

當你不小心在浮點數上進行整數運算時(這真的很容易),你會看到類似的東西。檢查並確保你的浮點數是浮點數,所有的數學運算都是用浮點數來完成的,並且不會出現整數運算。

它也可能是一個範圍相關的東西,而你得到一個不同的myFloat,很難說沒有所有的可用來源。

+0

我錯過了導致我的方法簽名不被發現的導入語句,所以傳入的變量失去了它的價值......我把它全部照顧的,感謝你的幫助 – BWC 2009-08-21 15:48:44

+0

這種有意義的,它可能會被視爲(id)而不是(float)導致各種奇怪的事情發生,因爲float不是一個類。 – slf 2009-08-21 17:13:04

0

嗯,我不明白你,因爲你說你從UIView傳遞給UIViewController。但是在你的代碼中,你首先調用UIViewController中的一個函數,順便說一句,它必須是[self myFunction:myFloat],並且在那個函數中調用你的UIView。

+0

沒有第一行代碼是在我的UIView,我打電話給ViewController中的一個函數,然後viewController然後刪除一個視圖和添加另一個視圖,然後在第二個視圖中調用一個函數,並傳遞第一個視圖給出的浮點數。但即使在它使這個調用浮動已經失去了它的價值 – BWC 2009-08-21 14:55:30

0

玉傢伙,

我想我已經想通了,爲什麼浮子不保留它的價值,但原因也令我感到困惑。當我打電話了UIView Xcode中ViewControllers功能顯示,沒有方法的警告,如果沒有匹配的簽名方法將承擔返回(ID),並通過「...」作爲參數

我明白這個警告的手段,但我不明白的是,我已經在我的viewController的標題

-(void)myFunction:(float)myFloat; 

我也有一個調用功能視圖控制器另一種觀點認爲聲明的方法,它不顯示那個警告......我很確定這是浮動不保留它的價值的原因,但我不'不知道爲什麼看不到方法簽名

+0

我想出了傢伙,我錯過了我的導入聲明......看到我知道這將是一件簡單的事情 – BWC 2009-08-21 15:47:23