【问题标题】:NSClassFromString() returns a class even when class should not be available即使类不可用,NSClassFromString() 也会返回一个类
【发布时间】:2012-03-11 03:04:53
【问题描述】:

我目前正在使用 iOS 4.0 的 iPhone 3G 上测试一个应用程序。

我有以下代码来检查这个类是否可用。

if (NSClassFromString(@"CLGeocoder"))

在文档中指出 CLGeocoder 可用于 iOs 5.0 及更高版本。 但是上面的代码并没有返回 nil。

为什么?这个类在 iOS 4.0 中应该不可用

【问题讨论】:

  • 返回什么? CLGeocoder 很可能在 iOS 4 中就已经存在,只是没有公开。
  • @JoshCaswell 正是它返回 CLGeocoder!你可能是对的。我已经找到了一种解决方法,我将在允许后立即发布答案。感谢您的提示

标签: iphone objective-c ios5 ios4


【解决方案1】:

为了检查 CLGeocoder 是否可用并且它确实在运行 iOS 5,我使用了以下内容:

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

                        //iOS 5 or later    
       }

【讨论】:

  • 所以单独NSClassFromString 永远/有时不够?
猜你喜欢
  • 1970-01-01
  • 2021-05-08
  • 2018-11-19
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2012-12-26
  • 2015-04-09
相关资源
最近更新 更多