我正在做一些非常愚蠢的事情,我沒有看到它。返回值真的很愚蠢
我有一個方法的對象DOC:
-(float) currentOrient
{
return 50.5;
}
在另一個對象,我呼籲:
-(void) showPage
{
float rot2=0;
rot2 = [doc currentOrient] ;
NSLog(@"SP rotation is %.2f", rot2);
}
但是,輸出是:
SP rotation is 1112145920.000000
無,一個問題是「爲什麼%2f格式不正確?」但更令人困惑的問題是「這個號碼從哪裏來?」是的,我已經用調試器走過了它,腐爛的價值從它開始的垃圾改變了。這個數字似乎是一致的。
顯然一些真正愚蠢的是怎麼回事...
未知方法的默認返回類型是' id',而不是'int'。 – dreamlax 2010-02-18 01:28:08
是的,但是有很多理由可能會認爲「int」在這裏(僅舉一個例子,可能有一個名稱相同的方法,而另一個類中可能有一個int類型的返回類型)和一個混合返回類型肯定是它發生的事情。如果它假定'id',他會得到一個錯誤,因爲該類型與浮點數不兼容。 – Chuck 2010-02-18 01:39:23
對不起,我指的是你的語句「'showPage'方法不知道'currentOrient'的返回類型,所以它將解釋返回的值作爲int」。如果*真正的*方法不知道返回類型,它將假定'id',而不是'int'。 – dreamlax 2010-02-18 02:41:48