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