在 CoreLocation 中使用未声明的标识符错误
Posted
技术标签:
【中文标题】在 CoreLocation 中使用未声明的标识符错误【英文标题】:Use of Undeclared Identifier error in CoreLocation 【发布时间】:2013-07-24 19:35:22 【问题描述】:我不明白为什么会出现错误:使用未声明的标识符“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 列表中?
CoreLocation.framework 标头的导入完成了吗?
#import <CoreLocation/CoreLocation.h>
我不会认为 CoreLocation
对你的班级来说是个好名字,因为上面的行和你的行之间的混淆:
#import "CoreLocation.h"
它应该可以工作(有这两行),但它似乎不必要地令人困惑(并且可能与 #import
的自动阻止加载相同的 .h 文件两次的功能相关的问题)。
我建议为您的自定义 CoreLocation
类 (a) 提供一个不会与现有标题混淆的唯一名称; (b) 一个更有意义的名称,表明它在做什么(例如 CoreLocationUtilities
或 AppCoreLocationManager
或其他)。
你的 alloc/init 方法行引用了一个变量名:
locationManager = [[locationManager alloc] init];
它大概应该引用一个类名,例如:
locationManager = [[CLLocationManager alloc] init];
如果您在该行没有收到错误,我想知道您是如何定义 locationManager
实例变量的。
与您的问题无关,我对您的自定义 CoreLocation
类是 NSObject
子类的引用感到困惑,但随后具有 viewDidLoad
方法,这通常是视图控制器方法。这似乎只会使水更加浑浊。
【讨论】:
我在这一行仍然遇到错误:- (NSString *)deviceLocation; 和我的第一个“”在底部? 我已经解决了问题并获得了坐标。以上是关于在 CoreLocation 中使用未声明的标识符错误的主要内容,如果未能解决你的问题,请参考以下文章
使用未声明的类型“DKAsset”,使用未解析的标识符“DKImagePickerController”?