2011-10-25 65 views
0

本聲明新的編譯器警告有關與不兼容的指針類型

drawTimebar *drawView = [drawTimebarView initWithFrame:drawTimebarView.frame]; 

在iOS 4的工作就好了初始化,但隨着iOS 5的SDK發出警告:

不兼容指針類型用'UIView *'類型的表達式初始化'drawTimebar *'

爲什麼這個改變了,我能做些什麼來解決它?

+1

作爲一個方面說明,你的類名應該*總是*大寫。這是obj-c中的標準約定。 – logancautrell

回答

3

突出的一件事是,您聲明的變量爲drawTimebar,但初始化和分配drawTimebarView

3

首先,班級名稱應始終以大寫後綴開頭併爲CamelCased。這有助於他人閱讀您的代碼,並幫助您跟蹤實例與類。

其次,你宣稱drawViewdrawTimeBar一個實例(想必這是一類,所以它真的應該DrawTimeBar)與該位

drawTimebar *drawView 

然而,當你初始化指針,你是與此位

[drawTimebarView initWithFrame:drawTimebarView.frame]; 
創造 drawTimeBarView實例(想必也是一類,因此應 DrawTimeBarView

的警告,讓您知道你是不一致的。我的猜測是,你的意思是你真的有

​​
+1

另一點是,'[drawTimebarView initWith ...]'有什麼問題,但究竟是什麼不明確。它可能是名稱錯誤的大類名稱,或者(可能)未分配的實例的無效初始化。要麼...? –

+0

嗨PengOne,謝謝你的回答,但不幸的是它不工作。我會盡力解釋我在這裏做什麼。我使用了從互聯網上刮取的一些代碼,以便原諒任何錯誤或慣例錯誤。 drawTimeBarView是我父視圖中的UIView,drawTimeBar是這個視圖的類。我試圖初始化這個類,所以我可以在drawTimeBarView中繪製一些東西。它工作正常,但它只是給XCode這個錯誤。不太明白髮生了什麼問題。問候 – Ron

相關問題