2010-05-04 5 views
2

Из того, что я могу сказать, мое приложение должно запускать акселерометры, в то время как Im использует симулятор iPad в XCode, но его нет.работает акселерометр для симулятора iphone/ipad?

У меня есть googled вокруг, и несколько кажется, что акселерометр не реализован в симуляторе, это правильно? Если да, то почему у них есть опция меню «Hardware-> Shake Gesture»?

Мой код выглядит следующим образом:

.h файл:

@interface MyViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate, UIAccelerometerDelegate>{ 
    UIAccelerometer *accelerometer; 
    //...other stuff 
} 
@property (nonatomic, retain) UIAccelerometer *accelerometer; 
@end 

тогда файл .m:

@implementation MyViewController 
@synthesize accelerometer; 
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { 
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"X: ", acceleration.x]); 
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Y: ", acceleration.y]); 
    NSLog(@"%@", [NSString stringWithFormat:@"%@%f", @"Z: ", acceleration.z]); 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.accelerometer = [UIAccelerometer sharedAccelerometer]; 
    self.accelerometer.updateInterval = .1; 
    self.accelerometer.delegate = self; 
} 
@end 

ли это выглядеть правильно?

+0

Действия и жесты, доступные через симулятор, генерируют события, которые находятся на более высоком уровне, чем акселерометр. – outis

+0

Почему у них есть опции меню? Я что-то упускаю? Если он ничего не делает, зачем вообще? – Mark

ответ

5

В симуляторе нет ускорителя.

«Аппаратное обеспечение → Shake Gesture» генерируется путем прямой отправки UIEvent в активное приложение.

Хотя Shake Gesture реализуется с использованием ускорителя на устройстве, концептуально они представляют собой два разных типа пользовательского ввода - жест - это событие, ускорение - непрерывное изменение. Таким образом, пункт меню Shake Gesture существует для приложений, которые используют только такой жест (например, Shake to Undo), но не обязательно знать точный вектор ускорения.

+0

ahh, я вижу, ну тогда это действительно то, что я хочу, так же как и мой код для такого рода реализации? – Mark

+0

@Mark: Вы просто хотите справиться, чтобы пожать жесты? Если это так, см. Http://stackoverflow.com/questions/150446/how-do-i-detect-when-someone-shakes-an-iphone/1111983#1111983. – kennytm

+0

да, спасибо, что посмотри на этот пост ... – Mark

1

Акселерометр не работает на iPhone/iPod Simulator. Ни «Hardware-> Shake Gesture» не используют акселерометр, ни изменения ориентации сафари на симуляторе.

+0

Извините, как именно я это делаю? :) все еще новичок в macs – Mark

+0

На самом деле, я скучаю почитаю ваше сообщение, извините, я понял, теперь, почему у вас есть опция меню? – Mark

Смежные вопросы