2014-02-28 49 views
0

我有一個類可以記錄整個iOS Xcode 5應用程序。我沒有將它導入到我的應用程序的每個屏幕中,而是將它簡單地放到我的Prefix.pch文件中。到目前爲止這麼好 - 這對我的Util.h和Constants.h文件來說工作得很好。將Parse.com導入到Xcode的Prefix.pch中的導入類會生成錯誤

但我的LoggingManager.h正在導入Parse.com框架,出於某種原因,應用程序不能編譯。

這些代碼的相關線路從LoggingManager

#import <Foundation/Foundation.h> 
#import <Parse/Parse.h> 
#import "ActionLog.h" 

@interface LoggingManager : NSObject 

這是錯誤:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_CLLocationManager", referenced from: 
    objc-class-ref in Parse(PFLocationManager.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

這究竟是爲什麼?有解決方案嗎?我應該補充說,如果我將LoggingManager直接導入到其他類中,一切正常,並且我的應用程序不是基於位置的,也不使用CLLocationManager

+1

添加CoreLocation框架到您的項目。 – rmaddy

+1

Minor nitpick - 你的應用程序編譯,它不鏈接。 – rmaddy

+0

謝謝,@rmaddy。你能解釋爲什麼這個工作?我的意思是,爲什麼在通過Prefix.pch導入LoggingManager時需要導入CoreLocation框架,而在每個類中直接導入時不需要執行此操作? – Eddy

回答

2

從剖析快速入門指南:

parse

基本上,導入CoreLocation.framework

+0

謝謝,@JuJoDi。你能解釋爲什麼這個工作?我的意思是,爲什麼在通過Prefix.pch導入LoggingManager時需要導入CoreLocation框架,而在每個類中直接導入時不需要執行此操作? – Eddy

+0

我會說實話,我不完全確定。我認爲這與Xcode進行預編譯的方式以及iOS中的所有內容必須靜態鏈接到二進制文件的事實有關。 Xcode可能是關於鏈接的「聰明」,但在類預編譯時可能不是 – JuJoDi