zoukankan      html  css  js  c++  java
  • ios 编译版本 最低版本 运行版本 动态链接库

      if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) 运行环境判断;

    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 编译器、开发环境支持;

    部署环境支持;

    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]

    在低于库版本的运行环境运行时,center返回值为nil;

    结论:

    1)在对象或类符号不存在时,动态库没有任何存在,返回值为nil;

    2)当一个类的接口存在跨系统级别的函数存在时,因为类或对象存在,函数符号不存在,所以存在崩溃的情况。

    - (void)registerRemoteNotification {

        if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {

    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 // Xcode 8编译会调用

            UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

            center.delegate = self;

            [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionCarPlay) completionHandler:^(BOOL granted, NSError *_Nullable error) {

                if (!error) {

                    NSLog(@"request authorization succeeded!");

                }

            }];

            

            [[UIApplication sharedApplication] registerForRemoteNotifications];

    #endif

        } else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {

            UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeSound | UIUserNotificationTypeBadge);

            UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];

            [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

            [[UIApplication sharedApplication] registerForRemoteNotifications];

        } else {

            UIRemoteNotificationType apn_type = (UIRemoteNotificationType)(UIRemoteNotificationTypeAlert |

                                                                           UIRemoteNotificationTypeSound |

                                                                           UIRemoteNotificationTypeBadge);

            [[UIApplication sharedApplication] registerForRemoteNotificationTypes:apn_type];

        }

    }

  • 相关阅读:
    MapReduce中压缩的使用体验
    weblogic 12安装及和Eclipse的整合
    常用正则表达式补充1
    C# 中利用 Conditional 定义条件方法
    金额文本框
    C#中的List<string>泛型类示例
    HTML ID和Name属性的区别
    CSS的position:fixed的使用
    C# 匿名方法和Lambda表达式
    C#设置开机启动程序
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8253790.html
Copyright © 2011-2022 走看看