2010-11-19 12 views

答えて

-1

いいえinfo.plistに何も追加する必要はありません。 ちょうどあなたのappDelegateプロトコルUIAccelerometerDelegateを実装して、あなたの.mファイルにだけ行うことを確認します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
... 
[[UIAccelerometer sharedAccelerometer] setDelegate:self]; 
.... 
} 

- (void) accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration 
{ 
    //your accelerometer code 
} 
1

をあなたがきれいにアプリを「劣化させる」防御し、常にコードを書く必要があります。 たとえば、加速度計が存在しない場合にアプリケーションがどのように動作するかを考える必要があります。

CMMotionManagerクラスを見てみましょう。特にBOOLを返すaccelerometerActiveプロパティを参照してください。

CMMotionManager *manager = [[CMMotionManager alloc] init]; 
if(!manager.accelerometerAvailable) { 
    NSLog(@"Accelerometer not available"); 
} else { 
    manager.accelerometerUpdateInterval = 1.0; 
    NSOperationQueue *motionQueue = [[NSOperationQueue alloc] init]; 
    [manager startAccelerometerUpdatesToQueue: motionQueue withHandler: 
    ^(CMAccelerometerData *data, NSError *error) { 
     NSLog(@"Accelerometer data: %@", [data description]); 
    } 
    ]; 
} 
+0

あなたはinfo.plistに何も追加する必要はないというだけで、そのデバイスの加速度センサーの有無を確認することです。私がそれをチェックしなければどうなるの? –

0

あなたはiOSのアプリケーション・プログラミング・ガイドの

<key>UIRequiredDeviceCapabilities</key> 
    <array> 
    <string>accelerometer</string> 
    </array> 

さらなる詳細(89ページ、表5-1)を使用する必要があります。ここでは一例です。 アプリがデバイスの向きの変更のみを検出した場合は、このキーを含める必要はありません。

関連する問題