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

发布于:2024-06-09 ⋅ 阅读:(152) ⋅ 点赞:(0)

目录

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,你可以增强代码的灵活性和可读性,让代码更加健壮。


网站公告

今日签到

点亮在社区的每一天
去签到