3
我正在爲iOS編寫一個靜態庫。我想以編程方式確定CoreLocation是否已添加到項目中,有沒有辦法做到這一點?獲取哪些iOS框架可用?
我正在爲iOS編寫一個靜態庫。我想以編程方式確定CoreLocation是否已添加到項目中,有沒有辦法做到這一點?獲取哪些iOS框架可用?
大概是這樣的:
if(NSClassFromString(@"CLLocationManager"))
{
NSLog(@"CoreLocation is available");
}
會做到這一點。 NSClassFromString需要一個NSString,並檢查在運行時當前是否有該類名稱可用。如果是,則返回Class
對象,否則返回nil。那裏的if語句有效地比較爲零。
因此,您所應用的邏輯是「目前是否存在一個名爲CLLocationManager的類?」,它是檢查CoreLocation是否被加載的代理,因爲它是該框架的基本類之一。
謝謝湯米!有什麼辦法可以告訴我,如果#import會失敗? –
Julie
不是真的 - 這是編譯時指令。所以它會根據編譯器是否可以找到文件而失敗或成功。您可能想要做的是導入標題而不鏈接到庫,然後使用編譯時檢查您是否可以使用庫ala官方建議來處理僅在更高版本的iOS中啓用的API。這聽起來像是會解決你的問題嗎? – Tommy