Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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版本导入不同的接口_Ios_Ios5_Preprocessor - Fatal编程技术网

根据iOS版本导入不同的接口

根据iOS版本导入不同的接口,ios,ios5,preprocessor,Ios,Ios5,Preprocessor,我已经创建了一个CustomURLConnection类 如果我的iOS版本大于5.0,那么我想使用 @interface CustomURLConnection : NSURLConnection<NSURLConnectionDataDelegate,NSURLConnectionDelegate> @interface CustomURLConnection : NSURLConnection 我该怎么做呢?您可以使用预处理器指令执行以下操作: #ifdef __IPHO

我已经创建了一个CustomURLConnection类

如果我的iOS版本大于5.0,那么我想使用

@interface CustomURLConnection : NSURLConnection<NSURLConnectionDataDelegate,NSURLConnectionDelegate>
@interface CustomURLConnection : NSURLConnection 

我该怎么做呢?

您可以使用预处理器指令执行以下操作:

#ifdef __IPHONE_5_0 
//Put your ios 5 specific code here
#else
//Put your other code here
#endif

可以使用预处理器指令执行以下操作:

#ifdef __IPHONE_5_0 
//Put your ios 5 specific code here
#else
//Put your other code here
#endif

您是否正在构建和销售两个不同版本的应用程序


只有当应用程序的多个版本分别编译时,预处理器指令才有意义。如果您有一个应用程序需要根据用户的iOS版本进行不同的操作,则需要进行运行时检查。

您是否正在构建和销售两个不同版本的应用程序


只有当应用程序的多个版本分别编译时,预处理器指令才有意义。如果您有一个应用程序需要根据用户的iOS版本进行不同的操作,则需要通过运行时检查来完成。

接口是一个编译时结构,这允许编译器知道命名符号是一种类类型,并根据其他参与者对该类的误用,为其提供足够的信息以适当地生成警告消息

因此,根据应用程序启动的操作系统版本,您无法对
@界面
进行任何修改,使其看起来有所不同。您希望它做什么-打印出您将收到的所有编译器警告

在Objective-C世界中,最好的解决方案始终是根据最新的SDK构建,在Info.plist中设置应用程序设计的最低iOS版本,并在运行时(使用
NSClassFromString
respondsToSelector:
等)检查可能因此而缺失的任何功能


在您的情况下,只需将协议声明留在其中,而不必三思而后行,应该绝对没有问题。

接口是一个编译时构造,这允许编译器知道命名符号是一种类类型,并根据其他参与者对该类的误用,为其提供足够的信息以适当地生成警告消息

因此,根据应用程序启动的操作系统版本,您无法对
@界面
进行任何修改,使其看起来有所不同。您希望它做什么-打印出您将收到的所有编译器警告

在Objective-C世界中,最好的解决方案始终是根据最新的SDK构建,在Info.plist中设置应用程序设计的最低iOS版本,并在运行时(使用
NSClassFromString
respondsToSelector:
等)检查可能因此而缺失的任何功能


在您的情况下,只需将协议声明留在其中,而不必三思而后行,应该绝对没有问题。

两者之间有什么区别?@OhhMee。我已经更新了问题。请检查一下!!两者有什么区别?@OhhMee。我已经更新了问题。请检查一下!!如何使用这些预处理器方向检查大于(>)5.0的版本此常量将在大于等于5的所有版本中定义。然而,正如下面提到的,你应该确保这是你想要的。如果功能只是略有不同,您应该在运行时检查版本。再次讨论这个问题,我不确定这个答案是否正确。我认为这将基于编译SDK版本,而不是实际的iOS版本。这个答案有用吗?如何使用这些预处理器方向检查大于(>)5.0的版本该常量将在大于等于5的所有版本中定义。然而,正如下面提到的,你应该确保这是你想要的。如果功能只是略有不同,您应该在运行时检查版本。再次讨论这个问题,我不确定这个答案是否正确。我认为这将基于编译SDK版本,而不是实际的iOS版本。这个答案有用吗?