2012-02-20 82 views
4

我目前正在使用iOS 4.0測試iPhone 3G上的應用程序。NSClassFromString()即使在課程不可用時也會返回類

我有以下代碼來檢查此類是否可用。

if (NSClassFromString(@"CLGeocoder")) 

在文檔它指出CLGeocoder適用於iOS 5.0或更高版本。 但上面的代碼不返回零。

爲什麼?這個類不應該的iOS 4.0

+3

是什麼回報? 'CLGeocoder'很可能已經在iOS 4中出現,只是沒有公開提供。 – 2012-02-20 18:59:33

+0

@JoshCaswell正是它返回CLGeocoder!你可能是對的。我已經找到了解決方法,只要我被允許,我會盡快回復。感謝您的提示 – bllubbor 2012-02-20 19:25:12

回答

2

可用於檢查是否CLGeocoder可用,但真正在運行iOS 5的我用下面的:

if (NSClassFromString(@"CLGeocoder") && 
    [NSClassFromString(@"CLGeocoder") instancesRespondToSelector: 
@selector(reverseGeocodeLocation:completionHandler:) ]) { 

         //iOS 5 or later  
     } 
+0

因此'NSClassFromString'本身永遠不會/有時足夠嗎? – Rivera 2013-12-19 01:57:54

相關問題