2011-07-07 79 views

回答

3

大概是這樣的:

if(NSClassFromString(@"CLLocationManager")) 
{ 
    NSLog(@"CoreLocation is available"); 
} 

會做到這一點。 NSClassFromString需要一個NSString,並檢查在運行時當前是否有該類名稱可用。如果是,則返回Class對象,否則返回nil。那裏的if語句有效地比較爲零。

因此,您所應用的邏輯是「目前是否存在一個名爲CLLocationManager的類?」,它是檢查CoreLocation是否被加載的代理,因爲它是該框架的基本類之一。

+0

謝謝湯米!有什麼辦法可以告訴我,如果#import 會失敗? – Julie

+0

不是真的 - 這是編譯時指令。所以它會根據編譯器是否可以找到文件而失敗或成功。您可能想要做的是導入標題而不鏈接到庫,然後使用編譯時檢查您是否可以使用庫ala官方建議來處理僅在更高版本的iOS中啓用的API。這聽起來像是會解決你的問題嗎? – Tommy