MST

星途 面试题库

面试题:Objective-C中@available语法基础

请简要描述Objective-C中@available语法的基本使用形式,包括参数有哪些,分别代表什么含义,并举例说明如何使用它来判断系统版本从而调用不同的API。
38.3万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. @available语法基本使用形式
    • 形式:@available(<platforms> <version>, ..., unavailable, message = <string>)
    • 参数含义
      • <platforms>:指定应用的平台,如iOSmacOSwatchOStvOS等。
      • <version>:指定该特性可用的最低版本号。
      • unavailable:表示该特性在此平台或版本下不可用。
      • message = <string>:当使用不可用特性时,编译器给出的提示信息。
  2. 示例
if (@available(iOS 13.0, *)) {
    // 使用iOS 13及以上的API
    UISceneConfiguration *configuration = [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:UISceneSessionRoleApplication];
} else {
    // 使用iOS 13以下的API
    UIWindow *window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
}

在上述代码中,@available(iOS 13.0, *)判断当前设备系统是否为iOS 13.0及以上,如果是则执行使用新API的代码块,否则执行使用旧API的代码块。*表示其他平台(如在iOS代码中,其他平台可忽略)。