Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 更改#定义iPhone与iPad的值_Ios_Iphone_Objective C_Ipad - Fatal编程技术网

Ios 更改#定义iPhone与iPad的值

Ios 更改#定义iPhone与iPad的值,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,我正在尝试为iPhone制作一个通用应用程序。我在*.m文件中有几个#define值 #define VERTICAL_GAP_SIZE 120 #define FIRST_OBSTACLE_PADDING 100 #define OBSTACLE_MIN_HEIGHT 60 #define OBSTACLE_INTERVAL_SPACE 130 在代码中,它是这样使用的(还有很多其他地方) 现在,如果我在iphone上运行我的应用程序,这些值都很好。对于iPad,我想改变这些值,但我不知道如

我正在尝试为iPhone制作一个通用应用程序。我在*.m文件中有几个#define值

#define VERTICAL_GAP_SIZE 120
#define FIRST_OBSTACLE_PADDING 100
#define OBSTACLE_MIN_HEIGHT 60
#define OBSTACLE_INTERVAL_SPACE 130
在代码中,它是这样使用的(还有很多其他地方)

现在,如果我在iphone上运行我的应用程序,这些值都很好。对于iPad,我想改变这些值,但我不知道如何改变?我的意思是,如果我尝试这一点,它是一个编译器错误

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        //its iphone
    }
    else
    {
        //its ipad
      VERTICAL_GAP_SIZE = 120
    } 

我不想只为iPad创建新的定义,因为我的代码中很多地方都在使用这些值

实际上您不能,因为
#define
是可预编译的marco,并且在您检查
用户界面idiom
时在运行时不可用,谢谢。我想我应该把这些定义改成静态int,对吧?对未来的人来说,就像rckoenes说的那样,这是不可能做到的。我不得不将define改为static int,然后进行iPhone与ipad的对比检查
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        //its iphone
    }
    else
    {
        //its ipad
      VERTICAL_GAP_SIZE = 120
    }