2010-09-05 88 views
2

我正在使用僅適用於iOS 4.0的方法CGPathGetPathBoundingBox。我正在對NULL進行檢查以查看它是否可用,正如Apple Docs中的建議一樣,但我收到以下運行時錯誤: dyld:懶符號綁定失敗:未找到符號:_CGPathGetPathBoundingBox 引用自:/ Users /。 。檢查函數是否存在 - 懶惰符號綁定失敗

預計於:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics

我設置了核芯顯卡framkework鍵入「弱」,但沒有影響。同樣的事情發生在真實設備上。當我在調試器中執行時,if語句總是被執行。

if (CGPathGetPathBoundingBox != NULL) { 
     self.smallBounds = CGPathGetPathBoundingBox(tempPath); 
    } 
    else { 
     self.smallBounds = CGPathGetBoundingBox(tempPath); 
    } 

回答

1

我得到這個答案發布到蘋果開發論壇之後,這似乎是一個錯誤:

CGPath.h說

CG_EXTERN CGRect CGPathGetPathBoundingBox(CGPathRef path) CG_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_2_0); 

但該文檔說這是一個4.0的功能。我認爲這是問題所在。 我會提交一個錯誤。 我不知道正確的解決方法是什麼,因爲功能不正確弱鏈接你的應用程序將崩潰在沒有該功能的操作系統。

-1

也許您需要使用respondsToSelector來代替?

+0

CGPathGetPathBoundingBox()是一個C函數,而不是一個類方法。 – hotpaw2 2010-09-05 15:52:23

相關問題