iOS中常用的一些宏以及用法

目录

1.NS_UNAVAILABLE                

2.__kindof


前言

    这里博客主要介绍iOS中常用的一些宏以及用法。

1.NS_UNAVAILABLE                

        NS_UNAVAILABLE是一个宏,通常用于指示某个方法不可用,无法被调用。

        当一个方法被标记为NS_UNAVAILABLE时,编译器会在调用这个方法时发出警告或者错误,具体取决于如何使用这个方法。

        这通常用于表示某个方法已经被废弃或者不再支持,或者是为了避免某些不必要的调用,或者是因为某些特定的原因该方法不可用。

        以下面的代码为例:

- (instancetype)init NS_UNAVAILABLE;

        上面的代码表示init方法不可用,不能被调用。当你尝试调用这个方法时,编译器会发出警告或者错误,提醒你该方法不可用。

        在 Swift 中,类似的功能可以通过在方法声明中使用@available(*, unavailable)来实现。

        以下面的Swift代码为例:

func someFunction() -> Int {
    return 42
}

@available(*, unavailable, message: "This function is unavailable")
func someFunction() -> Int {
    return 0
}

        这样,当你尝试调用被标记为unavailable的方法时,编译器会提示该方法不可用。

2.__kindof

        在 iOS 中,Objective-C 中的__kindof关键字用于声明一个对象或类的类型,表示这个对象或类,或者是它的子类。

        具体来说,__kindof可以用于声明返回值类型、变量类型、方法参数类型等,在这些场景下,它表明该类型以及该类型的子类都是有效的。

       这个关键字有以下几种应用场景:

1. 在声明变量时使用__kindof

UIView * __kindof view;

        这表示view可以是UIView类型的对象,也可以是UIView类的任意子类的对象。

2. 在方法返回值类型中使用__kindof

- (NSArray<__kindof UIView *> *)subviews;

        这表示subviews方法返回的数组中的对象类型可以是UIView类型,也可以是UIView类的任意子类的对象。

3. 在方法参数类型中使用__kindof

- (void)addSubview:(__kindof UIView *)view;

        这表示addSubview方法接受的参数类型可以是UIView类型的对象,也可以是UIView类的任意子类的对象。

        通过在类型声明中使用__kindof,你可以增强代码的灵活性和可读性,让代码更加健壮。

相关推荐

  1. iOS常用一些以及

    2024-06-09 08:46:01       28 阅读
  2. 一些常用

    2024-06-09 08:46:01       42 阅读
  3. c++ 常用一些定义

    2024-06-09 08:46:01       54 阅读
  4. 机器学习 - PyTorch一些常用

    2024-06-09 08:46:01       43 阅读
  5. Python常见

    2024-06-09 08:46:01       65 阅读
  6. PythonNumPy常见

    2024-06-09 08:46:01       37 阅读
  7. Pythonformat常见

    2024-06-09 08:46:01       34 阅读
  8. Webpack、Vite在Vue项目常用

    2024-06-09 08:46:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 08:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 08:46:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 08:46:01       82 阅读
  4. Python语言-面向对象

    2024-06-09 08:46:01       91 阅读

热门阅读

  1. Go 语言的 copy

    2024-06-09 08:46:01       33 阅读
  2. 【智驾硬件相关缩写词】

    2024-06-09 08:46:01       32 阅读
  3. 计算机网络期末复习

    2024-06-09 08:46:01       27 阅读
  4. 栈-20.有效的括号

    2024-06-09 08:46:01       30 阅读
  5. 开源目标检测数据集汇总

    2024-06-09 08:46:01       24 阅读
  6. DevOps的原理及应用详解(七)

    2024-06-09 08:46:01       26 阅读
  7. 03-3.4.1~2队列的应用

    2024-06-09 08:46:01       36 阅读
  8. UI与前端:揭秘两者的微妙差异

    2024-06-09 08:46:01       28 阅读