gpt4 book ai didi

iphone - 从 AppDelegate 获取当前位置

转载 作者:行者123 更新时间:2023-12-01 18:00:49 24 4
gpt4 key购买 nike

我的 appDelegate 中有一个方法,它获取纬度和经度并返回一个我可以在任何 viewController 中使用的字符串。

应用委托(delegate) :

-(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;
}

我调用 开始更新 在申请开始时。现在在我的 viewController 我调用这个方法:
AppDelegate *appDelegate=[AppDelegate sharedAppDelegate];
NSString *str = [appDelegate returnLatLongString];

但是我撞车了
str = [str stringByAppendingString:strLatitude];  

returnLatLongString .

我知道我正在崩溃,因为 中没有任何值(value)strLatitude 那时候。但是我该如何解决这个问题?我怎样才能获得更新的纬度和经度值?

另外,我不想使用 位置经理 在 View Controller 中。为了让我可以在所有 View Controller 中获取当前位置,我在 appDelegate 中完成了它。

最佳答案

崩溃可能是因为 str是一个 NSString,因此是不可变的。在这种情况下将其分配回自身是有问题的。使用 stringWithFormat 会更简单:

NSString *str = [NSString stringWithFormat: @"lat=%@&long=%@", strLatitude, strLongitude];

关于iphone - 从 AppDelegate 获取当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com