1

このヘッダーをインポートする必要があります

#import "NumberKeypadDecimalPoint.h"

ただし、デバイスがiPhoneの場合のみ。どうすればこれを行うことができますか?

アプリはその普遍的

これを試してみましたが、うまくいきません

#define iPad    UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad
#if iPad
#import "NumberKeypadDecimalPoint.h"
#end

ありがとう

4

1 に答える 1

3

そんなことはできません。その理由を理解するには、ユニバーサル アプリ (および C コンパイラ) がどのように機能するかをある程度理解する必要があります。

まず、#ifなど#defineは、コンパイル段階の早い段階で呼び出されるプリコンパイラ マクロです。これらは通常、プラットフォーム間でコンパイルできる移植可能なコードを作成するために使用されます。例えば:

# ifdef __ANDROID__
#   include <GLES/gl.h>
#   include <GLES/glext.h>
# else // iOS
#   include <OpenGL/OpenGL.h>
#   include <OpenGL/gl.h>
#   include <OpenGL/glext.h>
# endif

ただし、ユニバーサル アプリとは、複数の種類のデバイスで実行できるバイナリのことです。このため、iPhone と iPad で実行されるコードは同じコンパイル パスによって生成されます (これは、1 つのアプリで複数の CPU タイプをサポートするために使用されたユニバーサル バイナリまたはファット バイナリとは異なります。これらのアプリには、実際には複数のコンパイラ パスからのコードが含まれていました。 1 つのアプリ バイナリ)。

デバイス タイプは実行時にしか判断できないため、実行時にデバイス タイプ チェックを実行する必要があります。

于 2012-07-12T22:51:11.320 に答える