我不知道错误的原因:使用未声明的标识符'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文件夹中添加什么来补充这一点并为我的应用程序完成位置服务?
答案 0 :(得分: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
方法,这通常是视图控制器方法。这似乎只会让水更加浑浊。