如果我的应用程序使用ios7新功能,是否可以在iOS 6中安装?

时间:2014-01-07 15:10:17

标签: ios objective-c ios6 ios7

在我的应用中,我想使用iOS 7新功能:静音远程通知。另外,我必须确保它可以在iOS 6中正确安装和运行。这两个场景是否冲突?

我试过这个:

#ifdef IOS7_OR_LATER
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler
{
   ...
}
#endif

这适用于iOS 6吗?因为我没有iOS 6设备,所以我希望有经验的人可以给我一些建议。 谢谢你提供的所有帮助。 ^ _ ^

2 个答案:

答案 0 :(得分:4)

根据最近的Apple Tech Talks,有4种正确的方法可以做到这一点:

  1. 使用respondsToSelector
    (如果该方法存在于iOS7中但不存在于iOS6中)

  2. 使用&IOS7OnlyConstant != nil
    (如果选择器将被iOS6识别,但不是特定的常量)

  3. 使用Class Clusters
    (对iOS6和iOS7使用私有子类

  4. 使用Categories
    (覆盖并重命名常用方法。然后在方法实现中进行区分。)

答案 1 :(得分:1)

Thisthis主题可以为您提供帮助。包括使用“respondsToSelector”来区分iOS版本的方法。