私はappDelegateに緯度と経度を取得し、viewControllerで使用できる文字列を返すメソッドを持っています。AppDelegateから現在の位置を取得
AppDelegate:
-(void)StartUpdating
{
locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locManager startUpdatingLocation];
}
#pragma mark
#pragma mark locationManager delegate methods
- (void)locationManager: (CLLocationManager *)manager
didUpdateToLocation: (CLLocation *)newLocation
fromLocation: (CLLocation *)oldLocation
{
float latitude = newLocation.coordinate.latitude;
strLatitude = [NSString stringWithFormat:@"%f",latitude];
float longitude = newLocation.coordinate.longitude;
strLongitude = [NSString stringWithFormat:@"%f", longitude];
//[self returnLatLongString:strLatitude:strLongitude];
}
-(NSString*)returnLatLongString
{
NSString *str = @"lat=";
str = [str stringByAppendingString:strLatitude];
str = [str stringByAppendingString:@"&long="];
str = [str stringByAppendingString:strLongitude];
return str;
}
私は、アプリケーションの起動にStartUpdatingを呼び出しています。
AppDelegate *appDelegate=[AppDelegate sharedAppDelegate];
NSString *str = [appDelegate returnLatLongString];
しかし、私はreturnLatLongString
で
str = [str stringByAppendingString:strLatitude];
でクラッシュを取得:今私のViewControllerに私は、このメソッドを呼び出します。
その時点ではstrLatitudeに値がないので、私はクラッシュしていることを知っています。しかし、どうすればこの問題を解決できますか?緯度と経度の値を更新するにはどうすればいいですか?
また、私はlocationManagerをviewControllerに使用したくありません。私はすべてのviewControllerで現在の位置を取得できるように、appDelegateでそれを行いました。
を助けます;'私は著者が正しいことをしたと思う:[[のUIApplication 'リターン(AppDelegate *)のようにsharedApplicationからデリゲートを返すためにsharedApplication]デリゲート]; '。 –