我剛剛遇到了非常奇怪的錯誤,這可能是由於缺乏Objective C數據類型方面的知識。 如果我這樣做:CGFloat有奇怪的默認值
CGFloat newY;
NSLog(@"newY is %f", newY);
登錄返回0.0,雖然我希望爲零,但是這並不是真正的問題。如果我現在將此應用導出到iOS .ipa並從那裏安裝應用,則newY會自動初始化爲185.000。 這個值來自哪裏,爲什麼當應用程序從.ipa安裝而不是直接從XCode安裝?
我真的很感謝任何有關正在發生的事情的見解,這對我沒有任何意義。
在C中,您需要初始化局部變量。你看到的價值是垃圾價值,取決於各種因素。通常情況下,編譯器會警告這類事情。你在這裏忽略了一個警告嗎? – mvds
你需要初始化變量'newY'。否則它會給你垃圾值不是0.0。 –
是的我發現我必須初始化局部變量。我無法理解爲什麼分配不同的值。現在它更有意義。我想我沒有得到任何編譯器警告,因爲我正在遞增foreach循環中的變量newY = newY + 1.0f;非常感謝您的見解。 –