我已經在一週前下載了CorePlot,並且已經包含在我的一個MAC應用程序項目中。一切正常的調試,但是當我嘗試使用分佈構建失敗,出現此錯誤「不兼容的類型initWithFrame的參數1」initWithFrame的參數1的CorePlot不兼容類型
這裏是它是發生在構建它... ...
pieChart = [[CPXYGraph alloc] initWithFrame:CGRectZero];
我已經在一週前下載了CorePlot,並且已經包含在我的一個MAC應用程序項目中。一切正常的調試,但是當我嘗試使用分佈構建失敗,出現此錯誤「不兼容的類型initWithFrame的參數1」initWithFrame的參數1的CorePlot不兼容類型
這裏是它是發生在構建它... ...
pieChart = [[CPXYGraph alloc] initWithFrame:CGRectZero];
CPXYGraph
是CALayer
,所以CGRectZero
是正確的。問題是多個類有一個-initWithFrame:
方法。 +alloc
返回一個id
,因此編譯器不知道選擇哪個類,有時會選擇錯誤的類。你可以通過類型轉換來解決這個問題,像這樣:
pieChart = [(CPXYGraph *)[CPXYGraph alloc] initWithFrame:CGRectZero];
如果這是針對Mac OS X應用程序的,與UIKit不同,Application Kit通常從NS *結構中獲取幾何。所以,你需要NSZeroRect,而不是CGRectZero。此外,當您生成這些結構時,您需要使用宏NSMakeRect(x, y, w, h)
而不是CoreGraphics CGRectMake(x, y, w, h)
。
嗨Jason,謝謝你的回覆。我已將其更改爲NSZeroRect。現在錯誤已經從這裏消失了,但是我得到了這6個錯誤全部針對不同類的coreplot。其中之一是ld:警告:在/Users/.../Source/build/Debug/CorePlot.framework/CorePlot中,文件是爲不支持的文件格式構建的,而不是被鏈接的體系結構(i386)「.obj_class_name_CPTextLayer」引用來自: – Leo 2011-03-22 21:18:10
嗨,Eric,謝謝你的回覆。我在上班。當我完成工作並且讓你知道的時候,會放棄它。 – Leo 2011-03-23 15:23:40
我只是試圖說,埃裏克和不幸的是相同的6錯誤在那裏。 ld:警告:在/Users/.../Source/build/Debug/CorePlot.framework/CorePlot中,文件是爲不支持的文件格式構建的,而不是被鏈接的架構(i386)。任何想法??? – Leo 2011-03-23 19:53:00
檢查Core Plot項目構建設置中的構建體系結構設置。你可能還需要做一個乾淨的構建。 – 2011-03-25 21:54:39