2013-10-06 45 views
1

我在我創建的自定義框架中使用coreLocationframework,將框架集成到我的項目後運行後出現以下錯誤應用是否需要在我的項目中添加corelocation框架,如果我在我自己的框架中使用它

爲i386硬件架構未定義符號: 「_OBJC_CLASS _ $ _ CLLocationManager」,從引用:在MYFramework 「_kCLLocationAccuracyBest」 objc級-ref時,從所引用: - 在MYFramework LD [效用getCurrentLocation]:符號(s)not found for architecture i386 clang:錯誤:linker命令失敗,退出代碼1(使用-v查看調用)

之後,我只是在MY項目中添加了相同的corelocationframework,然後錯誤沒有代碼正在工作。

所以我想知道這背後的原因是什麼,如果我還添加其他框架,會發生什麼?

回答

2

無論何時您構建依賴於另一個框架的靜態庫或框架,您都必須將該框架鏈接到您的框架以及最終項目中。

如果您將該框架發佈到別處供其他人使用,您應該在安裝框架之後說明它們還必須鏈接CoreLocation

例子:

MyFramework 
--> Frameworks 
    --> CoreLocation.framework 

MyApp 
--> Frameworks 
    --> MyFramework.framework 
    --> CoreLocation.framework 
+0

感謝您的寶貴迴應。 –

+0

@KarthikMitta很高興幫助,謝謝:) – iwasrobbed

2

框架的核心是一個靜態庫,它包含了框架中的所有代碼。當您參考iOS SDK中的任何核心框架時,它們都會動態鏈接到您的項目。因此,您在框架項目中引用的任何核心框架也需要在與您的框架相關的應用程序中引用。

+0

感謝您的答覆,因此,這意味着在我的項目增加了核心框架以及MyFramework是沒有錯的或錯我是正確的? –

+0

這是正確的。 – neilco

+0

感謝您的回答 –

相關問題