全部,
我正在使用一个示例代码,它使用CLLocationManager类来确定用户的当前位置。 当我在iPad上运行这个应用程序时,我得到了正确的位置,但是当我在iPod Touch上运行相同的应用程序时,我得到一个空白标签,即标签上没有显示任何内容。尽管Wi-Fi信号强度在iPod和iPad上都很好。代码看起来像......
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
int degrees = newLocation.coordinate.latitude;
double decimal = fabs(newLocation.coordinate.latitude - degrees);
int minutes = decimal * 60;
double seconds = decimal * 3600 - minutes * 60;
NSString *lat = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
latLabel.text = lat;
[latLocationArray addObject:lat];
degrees = newLocation.coordinate.longitude;
decimal = fabs(newLocation.coordinate.longitude - degrees);
minutes = decimal * 60;
seconds = decimal * 3600 - minutes * 60;
NSString *longt = [NSString stringWithFormat:@"%d° %d' %1.4f\"",
degrees, minutes, seconds];
longLabel.text = longt;
[longLocationArray addObject:longt];
}
答案 0 :(得分:1)
iPad可能会看到iPod Touch无法看到的WiFi电台。 Touch具有较小的WiFi范围。你是在一个只有很少的WiFi站(乡村)的地区进行测试的。
iPad是3G型号吗?如果是,如果WiFi不工作,它将使用GPS和手机信号塔。
您是否检查过位置管理员发送给您的任何错误?您之前可能已禁用该应用的位置数据,或者可能存在其他错误。
答案 1 :(得分:0)
int degrees = newLocation.coordinate.latitude;
double decimal = fabs(newLocation.coordinate.latitude - degrees);
int minutes = decimal * 60;
double seconds = decimal * 3600 - minutes * 60;
你知道当newLocation.coordinate.latitude> = 0时,所有这些阴谋的净结果为'0',对吗?
如果newLocation.coordinate.latitude = 90 .....
度= 90
decimal = 0; (90 - 90)
分钟= 0; (0 * 60)
秒= 0; (0 * 3600 - 0 * 60)//假设典型的操作数优先权