iPhone Appのサンプルコード LocateMeのソースを読んでみる

iPhone Appの開発方法とObjective-Cを理解するためにサンプルコードを読んでみる。


まず、Startボタンを押したらMainViewControllerのstartStopButtonPressedメソッドが実行される。
この時、下記のソースのelseの方が実行される。
ここでは、MyCLControllerのインスタンスを生成し、locationManager(CLLocationManagerオブジェクト)のstartUpdatingLocationメソッドが実行される。
これでユーザーの現在位置の取得が始まる。

-(IBAction)startStopButtonPressed:(id)sender {
	if (isCurrentlyUpdating) {
		[[MyCLController sharedInstance].locationManager stopUpdatingLocation];
		isCurrentlyUpdating = NO;
		[startStopButton setTitle:NSLocalizedString(@"StartButton", @"Start")];
		[spinner stopAnimating];
	} else {
		[[MyCLController sharedInstance].locationManager startUpdatingLocation];
		isCurrentlyUpdating = YES;
		[startStopButton setTitle:NSLocalizedString(@"StopButton", @"Stop")];
		[spinner startAnimating];
	}
}


位置情報が取得できたらMyClControllerの下記のメソッドが呼び出される。

- (void)locationManager:(CLLocationManager *)manager
	didUpdateToLocation:(CLLocation *)newLocation
		   fromLocation:(CLLocation *)oldLocation


このメソッドの引数のnewLocationに位置情報が設定される。
newLocation.coordinate.latitude:緯度
newLocation.coordinate.longitude:軽度


このメソッドの最後で下記の行が実行されRootViewControllerのnewLocationUpdateが実行される。

	[self.delegate newLocationUpdate:update];

こんな感じで動いてる。
一応、動かしながらソースをながめたので間違いはないと思うが。


まだ、Objective-Cに慣れていないのでデリゲートとか出てくるとサクサク進まないが
サンプルコードを参考に、ぼちぼちiPhone Appを開発中。