2011-08-03 11 views
1

iPhoneとiPod Touchのアプリケーションをアプリストアに正常に保存しましたが、後でiPad 3.2で動作しないことが判明しましたが、スケーリングされたバージョンでは4のようなiOSの高いiPadで動作します。iPhoneとiOS 3.2の互換性を持つiPad

理由:ムービープレーヤのsetOrientationプロパティ。

実際のクエリ:私はこのコードがエラーを投げているのiOS 3.0と私のMAC BOOK上で同じコードを実行すると、それはMACデスクトップでiPadの3.2上で動作させるために、私は

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     player.view.frame = CGRectMake(0, 0, 768, 1024); 
     [self.view addSubview:player.view]; 
     [player play]; 
    } 
    else { 
       #ifdef __IPHONE_4_0 
        player.controlStyle = MPMovieControlStyleNone; 
       #else 
        [player setOrientation:UIDeviceOrientationPortrait animated:NO]; 
} 

を使用。 ..サポートされていません。だから、

  • 私は(のiOS 4との)MACデスクトップ上で上記のコードをビルドする場合

    意志のiOS 3.0とiPhoneデバイス上でその仕事 ? ..イベントキットフレーム 作業(iOS 3.0ではエラーを投げますが、iOS 4では必要です)を参照してください。

  • ユニバーサルではなく別のiPadアプリを使用する必要がありますか?

  • プロパティの点で、iOS 3.2とiOS 3.2のiPhoneとiPhoneとの間に違いはありますか?

+1

iPhoneのための任意のiOS 3.2がない「のiOS 3.2でのiOS 3.2とiPadとiPhoneの違いはあります」。それはiPad専用のリリースだった。 –

答えて

0

コンパイル時にハードコードする必要はありません。代わりに、クラスの特定のクラスまたはメソッド/プロパティが存在するかどうかをテストしてから、適切なことを行う必要があります。 [NSObject respondstoSelector:]を使用して、オブジェクトが特定のメソッドを理解しているかどうかをテストします。

0

MacデスクトップやMacBookを使ってコンパイルしても問題ありません。 「最小iOS」値と「基本SDK」を混乱させるようです。

Base SDK:コンパイラがコードをチェックするために使用するコードライブラリを指しますが、実際に実行されるOSが特定されません。あなたは5.0の基本SDKを持つことができ、あなたのアプリはまだ3.0システムでうまく動作するかもしれません。キャッチすることは、あなたが古いSDKではなくBase SDKと互換性のあるコードを使用している場合、コンパイラはそれをキャッチしないということです。

最小OS:この値は、OSのアプリケーションが上の実行されるかを決定しません。

より高いOSでコードを使用しているが、より低いOSで実行したい場合は、実行中のOSのコードをテストしてから、そのプラットフォームに適切なコードを実行する必要があります。

+0

私のMac Desktop n mac bookの感覚Mac Desktopにはx-code 3.2.4があり、iOS 3.2以上を持ち、Mac BookにはiOS 3.0を持つx-codeの別バージョンがあります –

関連する問題