Ios 在单独的线程中收集加速计和位置更新
我必须在单独的线程中获得加速计和位置更新,但不能在主线程上。此外,它不应该中断一个或其他UI任务 位置更新和附件更新应单独运行。如何分别运行这两个 在获得加速计更新后,我正在执行一些任务,在位置更新后,我正在执行一些其他任务。但我注意到这些都是相互干扰的 对于位置更新,我使用委托方法:Ios 在单独的线程中收集加速计和位置更新,ios,cllocationmanager,cmmotionmanager,Ios,Cllocationmanager,Cmmotionmanager,我必须在单独的线程中获得加速计和位置更新,但不能在主线程上。此外,它不应该中断一个或其他UI任务 位置更新和附件更新应单独运行。如何分别运行这两个 在获得加速计更新后,我正在执行一些任务,在位置更新后,我正在执行一些其他任务。但我注意到这些都是相互干扰的 对于位置更新,我使用委托方法: -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { /// send
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
/// sending location details to server.
}
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
{
if (!error) {
/// Calculating some values and sending those details to server.
}
}];
对于加速计更新,我使用委托方法:
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
/// sending location details to server.
}
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
{
if (!error) {
/// Calculating some values and sending those details to server.
}
}];
你读过关于线程的文档了吗?是的,我已经使用[NSThread detachNewThreadSelector:@selector(myThreadMainMethod:)toTarget:self with Object:nil]创建了线程;[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]withHandler:^(CMAccelerometerData*accelerometerData,NSError*error){if(!error){detachNewThreadSelector:@selector(myThreadMainMethod:)toTarget:self withObject:nil];//应用程序UI速度变慢///计算某些值并将这些详细信息发送到服务器。}];以及如何通过该线程访问不属于该线程的方法。