CMMotionManager и гироскоп на iPhone 4 - PullRequest
8 голосов
/ 12 июля 2010

Я пытаюсь просто NSLog выход нового iPhone 4 Gyroscope. Но после прочтения документации и после их примера кода я получаю эту ошибку.

ERROR,Time,300635803.946,Function,"CLLoggingSetFile",could not open locations log /var/mobile/Library/Caches/CoreMotion/CoreMotion.log

Даже если я просто настрою свой объект motionManager с помощью [[CMMotionManager alloc] init]; сам по себе и без другого кода, я все еще получаю ошибку.

Вот мой файл .h.

#import <UIKit/UIKit.h>
#import <CoreMotion/CoreMotion.h>

@interface GyroTest0ViewController : UIViewController {
    CMMotionManager *motionManager;
    NSOperationQueue *opQ;
}

@end

А вот и мой .m файл.

- (void)viewDidLoad {
    [super viewDidLoad];

    // the error occurs even just with this line on its own
    motionManager = [[CMMotionManager alloc] init]; 

    if (motionManager.gyroAvailable) {
        motionManager.gyroUpdateInterval = 1.0/60.0;
        [motionManager startGyroUpdates];
        opQ = [[NSOperationQueue currentQueue] retain];
        CMGyroHandler gyroHandler = ^ (CMGyroData *gyroData, NSError *error) {
            CMRotationRate rotate = gyroData.rotationRate;
            NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z);
        };
    } else {
        NSLog(@"No gyroscope on device.");
        [motionManager release];
    }
}

Будем весьма благодарны за любую помощь и / или исходный код для простой регистрации данных гироскопа iPhone 4. Большое спасибо!

Ответы [ 3 ]

8 голосов
/ 12 июля 2010

Попробуйте,

    motionManager.gyroUpdateInterval = 1.0/60.0;
    [motionManager startGyroUpdatesToQueue:[NSOperationQueue currentQueue]
                               withHandler: ^(CMGyroData *gyroData, NSError *error)
                                            {
                                                CMRotationRate rotate = gyroData.rotationRate;
                                                NSLog(@"rotation rate = [%f, %f, %f]", rotate.x, rotate.y, rotate.z);
                                            }];
3 голосов
/ 14 сентября 2010

Для примера кода WWDC:

  • Войдите в АЦП
  • Нажмите на видео сеанса WWDC 2010
  • Просмотреть в iTunes
  • ТамВы найдете ссылку на пример кода (230 МБ)
2 голосов
/ 01 сентября 2010

Есть ли какие-либо результаты по этому вопросу? Я получаю ту же ошибку, даже когда использую демонстрационный код чайника WWDC. Я подал отчет об ошибке (8382659).

Кстати, я получаю ту же ошибку, когда использую метод push, описанный Джошуа Вайнбергом.

Обновление: Apple подтвердила ошибку, но сослалась на повторяющуюся проблему 8173937, которую я не могу найти. Что ж, будем надеяться, что это будет исправлено в следующем выпуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...