Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 修改运动图示例代码_Xcode_File_Accelerometer_Sensors - Fatal编程技术网

Xcode 修改运动图示例代码

Xcode 修改运动图示例代码,xcode,file,accelerometer,sensors,Xcode,File,Accelerometer,Sensors,我想通过MotionGraphs将加速计或传感器值保存到文件文本中。 当deviceMotion被激活时,它将用于下一个代码: if ([mManager isDeviceMotionAvailable] == YES) { [mManager setDeviceMotionUpdateInterval:updateInterval]; [mManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]

我想通过MotionGraphs将加速计或传感器值保存到文件文本中。 当deviceMotion被激活时,它将用于下一个代码:

if ([mManager isDeviceMotionAvailable] == YES) {

    [mManager setDeviceMotionUpdateInterval:updateInterval];

    [mManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion *deviceMotion, NSError *error) {

        // attitude

        [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeAttitude] addX:deviceMotion.attitude.roll y:deviceMotion.attitude.pitch z:deviceMotion.attitude.yaw];

        //rotationRate

        [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeRotationRate] addX:deviceMotion.rotationRate.x y:deviceMotion.rotationRate.y z:deviceMotion.rotationRate.z];

        // gravity

        [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeGravity] addX:deviceMotion.gravity.x y:deviceMotion.gravity.y z:deviceMotion.gravity.z];

        // userAcceleration

        [[weakSelf.graphViews objectAtIndex:kDeviceMotionGraphTypeUserAcceleration] addX:deviceMotion.userAcceleration.x y:deviceMotion.userAcceleration.y z:deviceMotion.userAcceleration.z];
我认为正在使用一个队列,我想介绍一个从这个队列保存到filetext的实现

怎么可能呢?

您的代码如下:

NSMutableArray *sensorData;
//[sensorData removeAllObjects];

if ([mManager isDeviceMotionAvailable] == YES) {
    [mManager setDeviceMotionUpdateInterval:updateInterval];
    [mManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion *deviceMotion, NSError *error) {
        NSString *strSensorData = [NSString stringWithFormat:@"%.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f %.6f", deviceMotion.timestamp, deviceMotion.attitude.roll, deviceMotion.attitude.pitch, deviceMotion.attitude.yaw, deviceMotion.rotationRate.x, deviceMotion.rotationRate.y, deviceMotion.rotationRate.z, deviceMotion.gravity.x, deviceMotion.gravity.y, deviceMotion.gravity.z, deviceMotion.userAcceleration.x, deviceMotion.userAcceleration.y, deviceMotion.userAcceleration.z];
        [sensorData addObject:strSensorData];
        //...
}

- (void)stopUpdates
{
    CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];

    if ([mManager isDeviceMotionActive] == YES) {
        [mManager stopDeviceMotionUpdates];
    }

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDir = [paths objectAtIndex: 0];
    NSString *docFile = [docDir stringByAppendingPathComponent: @"sensordata.txt"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:docDir])
        [fileManager createFileAtPath:docDir
                             contents:nil
                           attributes:nil];
    //[sensorData writeToFile:docFile atomically:YES];
    [sensorData.description writeToFile:docFile atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
希望这有帮助