我是iphone开发的初学者。 我开发了一个应用程序,其中我在clsGPS {}中调用一些GPS相关信息(方法名称为getGPSInformation {})是一个纯NSObject类。代码如下,
#import "clsGPS.h"
-(void)getGPSInformation
{
locationManager = [[CLLocationManager alloc ] init];
locationManager.delegate = self;
locationManager.distanceFilter = 5.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];
}
我想在UIViewController类中调用上面的方法。我如何在UIViewController类中调用此方法,我会在应用程序启动时自动调用此方法? 我应该在viewDidLoad事件或viewWillAppear方法中调用该方法吗?
答案 0 :(得分:0)
放置要在启动时加载的代码的最佳位置是应用程序委托的-applicationDidFinishLaunching:
方法。应用程序委托是从一个Xcode项目模板开始创建的所有项目的一部分。
一个问题是Default.png启动画面会一直持续到-applicationDidFinishLaunching:
返回,因此您可以使用以下内容调用-getGPSInformation
方法:
[self performSelector:@selector(getGPSInformation)
withObject:nil
afterDelay:0.1];
这将产生将方法调用放在事件队列上的效果,立即返回并在十分之一秒后调用位置管理器初始化。
如果您想在加载视图控制器时调用某些内容,-viewDidLoad
将是一个不错的选择。但是,也可以卸载视图控制器,因此您的locationManager对象将被多次初始化(并可能泄漏,使用上面的代码)。 -viewDidLoad
通常用于调整刚刚加载的.xib接口文件的内容或与UI相关的内容。
-viewWillAppear
实际上是在您每次导航(前进或后退)到视图控制器时调用的,因此绝对不是您想要的位置管理器。