Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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
iPhone-不使用方法定义条件变量_Iphone - Fatal编程技术网

iPhone-不使用方法定义条件变量

iPhone-不使用方法定义条件变量,iphone,Iphone,我有一个名为myConstants.h的文件,用于放置应用程序使用的所有常量。此文件导入到需要访问其中一个变量的任何类中 我正在构建一个通用应用程序,如果在iPad或iPhone上运行,我需要使用不同的变量值 我给你一个一般的例子来说明我的意思 在我的主代码中,我可能有如下内容: self.DEVICE = @"iphone"; self.IPAD = NO; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { sel

我有一个名为myConstants.h的文件,用于放置应用程序使用的所有常量。此文件导入到需要访问其中一个变量的任何类中

我正在构建一个通用应用程序,如果在iPad或iPhone上运行,我需要使用不同的变量值

我给你一个一般的例子来说明我的意思

在我的主代码中,我可能有如下内容:

self.DEVICE = @"iphone";
self.IPAD = NO;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    self.DEVICE = @"ipad";
    self.IPAD = YES;
}
但这是在主代码上定义的。如果我需要一个类来使用这两个变量中的一个,我需要构造复杂的方法来引用主类并读取其中的变量

我的想法是将其包含在myConstants.h中

但是,如果myConstants.h只是一个普通文件,其中每一行都是一个
#define
条目,而没有任何方法,我该怎么做呢

我的想法是将
设备
IPAD
变量作为整个应用程序的全局变量,并通过导入“myConstants.h”将它们提供给任何类

这可能吗?怎么做


谢谢

您可以使用预编译器:

#if TARGET_OS_IPHONE
NSString *device_ = @"iphone"; 
#endif TARGET_OS_IPHONE
等等

然后在构建属性中定义指令。

我认为
#define
块在这种情况下不起作用,因为它们是在编译时解释的。编译器如何知道用户正在使用哪个设备


我在我的一个应用程序中做了一些事情,用来在运行时检测设备类型(在
if
语句中)。这个很好用。

就是这样。好主意。将其作为UIDevice的扩展。我没有使用Erica Sadun扩展,而是设计了一个更小的扩展,因为我不需要那么多东西。谢谢不幸的是,这只对编译时有用,而不是我所需要的运行时。不管怎样,谢谢。好的,我想为每台设备“MyApp”和“MyApp HD for iPad”设计一个单独的二进制文件。