Ios 在单独的线程中收集加速计和位置更新

Ios 在单独的线程中收集加速计和位置更新,ios,cllocationmanager,cmmotionmanager,Ios,Cllocationmanager,Cmmotionmanager,我必须在单独的线程中获得加速计和位置更新,但不能在主线程上。此外,它不应该中断一个或其他UI任务 位置更新和附件更新应单独运行。如何分别运行这两个 在获得加速计更新后,我正在执行一些任务,在位置更新后,我正在执行一些其他任务。但我注意到这些都是相互干扰的 对于位置更新,我使用委托方法: -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { /// send

我必须在单独的线程中获得加速计和位置更新,但不能在主线程上。此外,它不应该中断一个或其他UI任务

位置更新和附件更新应单独运行。如何分别运行这两个

在获得加速计更新后,我正在执行一些任务,在位置更新后,我正在执行一些其他任务。但我注意到这些都是相互干扰的

对于位置更新,我使用委托方法:

-(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速度变慢///计算某些值并将这些详细信息发送到服务器。}];以及如何通过该线程访问不属于该线程的方法。