目錄
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,你可以增強代碼的靈活性和可讀性,讓代碼更加健壯。