location - CoreLocation 中使用未声明标识符错误

标签 location core-location cllocationmanager

我不明白为什么会出现错误:使用未声明的标识符“KCLDistanceFilterNone”和“kCLLocationAccuracyHundredMeters”不断出现在我的 CoreLocation.m 文件夹中。即使我删除了“;”,还有更多错误。从选择的行中。有人可以帮忙吗?

#import "CoreLocation.h"

@implementation CoreLocation : NSObject 

- (NSString *)deviceLocation {
    NSString *theLocation = [NSString stringWithFormat:@"latitude: %f longitude: %f", locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude];
    return theLocation;
}

- (void)viewDidLoad
{
    locationManager = [[locationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone;
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    [locationManager startUpdatingLocation];
}

@end

另外,我应该在 CoreLocation.m 文件夹中放入什么来补充这一点并完成我的应用程序的位置服务?

最佳答案

一些想法:

  1. 您是否已将 CoreLocation.framework 包含在 linked libraries/frameworks 列表中?

  2. 您是否已完成 CoreLocation.framework header 的导入?

    #import <CoreLocation/CoreLocation.h>
    
  3. 我不会认为 CoreLocation 对于您的类来说是一个好名字,因为上面的行和您的行之间存在混淆:

    #import "CoreLocation.h"
    

    它应该可以工作(具有这两行),但似乎不必要地令人困惑(并且存在与 #import 的功能相关的风险,该功能会自动阻止两次加载相同的 .h 文件)。

    我建议给您的自定义 CoreLocation 类 (a) 一个唯一的名称,不会与现有 header 混淆; (b) 一个更有意义的名称,表明它正在做什么(例如 CoreLocationUtilitiesAppCoreLocationManager 或其他)。

  4. 您的 alloc/init 方法行引用变量名称:

    locationManager = [[locationManager alloc] init];
    

    它应该引用一个类名,例如:

    locationManager = [[CLLocationManager alloc] init];
    

    如果您在那一行没有收到错误,这让我想知道您是如何定义 locationManager 实例变量的。

  5. 与您的问题无关,我对您的自定义 CoreLocation 类作为 NSObject 子类的引用感到困惑,但随后又具有 viewDidLoad 方法,通常是 View Controller 方法。这似乎只会让水变得更加浑浊。

关于location - CoreLocation 中使用未声明标识符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17849042/

相关文章:

ios - MVP中的核心位置

ios - CLLocationManager 一直不工作(iOS 8,Xcode 6)

iOS 12 无故终止后台应用

javascript - React : location. 页面加载后首次导航时状态未定义

android - 无法找到位置应用程序崩溃

ios - CLLocationManager 未确定位置

iOS:当我尝试通过点击获取 CLLocation 时,大部分时间都有 "big"滞后

android - 使用 GoogleApiClient + LocationServices 不更新

android - LocationClient 无法解析为类型

ios - 这是对位置授权回调的可接受使用吗?