ios 编译版本 最低版本 运行版本 动态链接库

Posted zzfx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];

    }

}

以上是关于ios 编译版本 最低版本 运行版本 动态链接库的主要内容,如果未能解决你的问题,请参考以下文章

GWT 所需的 JDK 和 JRE 最低版本(编译和运行)

编译版本与最低要求版本 Android

linux 下如何将动态链接库.so进行反编译后,换编译器重新编译?

运行我的小程序所需的最低 Java 版本

Apple 在 AppStore 中接受的最低 iOS 目标版本?

Linux程序编译链接动态库版本号的问题