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];

        }

    }

  • 相关阅读:
    SA练习题总结-篇一
    树上距离(树形DP)
    Codeforces Round #633(Div.2) E. Perfect Triples
    Codeforces Round #633 (Div. 2) D.Edge Weight Assignment
    问题 B: FZB(树形DP+边记忆化)
    【Matlab】自学笔记——基础知识篇
    【Python科学计算】Numpy——ndarry
    退役总结
    [树的遍历]树的遍历(PTA)
    [stl]集合相似度(PTA)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8253790.html
Copyright © 2011-2022 走看看