我为 ios 创建了一个通用框架。在框架中,我有一个提供 gps 位置的类。此类使用导入 CoreLocation/CoreLocation.h。但是 CoreLocation 框架不应该是我自己框架的一部分。所以我必须检查框架是否存在。为此,我使用示例中的 NSClassFromString 。
但是,如果我从未将 CoreLocation 添加到我自己的框架或使用我的框架的应用程序中,则此示例也适用。为什么它有效?这可能是在苹果评论中拒绝该应用程序的原因吗?
#import <CoreLocation/CoreLocation.h>
...
-(void)init {
self = [super init];
Class CLLocationManagerOrNil = NSClassFromString(@"CLLocationManager");
if (CLLocationManagerOrNil) {
_locationManager = [[CLLocationManagerOrNil alloc] init];
_locationManager.delegate = self;
// update location
[_locationManager startUpdatingLocation];
}
return self;
}