27.怎樣在Swift中聲明typedef?


  在OC中,我們經常會用typedef關鍵字來聲明Block,例如:

/**
 * 通用的空閉包類型,無參數,無返回值
 */
typedef void (^GofVoidBlock)(void);

  在Swift中,typedef關鍵字替換成了typealias。實際項目開發中,我們常用的閉包宏定義如下:

import Foundation
import UIKit

/// SnapKit約束閉包類型
typealias GofConstraintMaker = (ConstraintMaker) -> Void;

/// 按鈕點擊回調閉包類型
typealias GofBtnClickBlock = @convention(block)(UIButton) -> Void;
(UIButton) -> Void;

/// 只帶一個error參數的失敗閉包類型,主要用於處理失敗回調
typealias GofErrorBlock = (NSError) -> Void;

/// 只帶一個errorMessage參數的失敗閉包類型,主要用於處理失敗回調
typealias GofErrorMessageBlock = (String) -> Void;

/// 通用的空閉包類型,無參數,無返回值
typealias GofVoidBlock = (Void) -> Void;

/// 通知的閉包類型
typealias GofNotificationBlock = (NSNotification) -> Void;

/// 常用的返回Bool類型的閉包類型
typealias GofBoolBlock = (Bool) -> Void;

/// 常用的返回Bool類型和相應提示語的閉包類型
typealias GofBoolMsgBlock = (Bool, String) -> Void;

/// 常用的返回數組類型的閉包類型
typealias GofArrayBlock = ([Any]) -> Void;

/// 常用的返回數組類型和錯誤提示語的閉包類型
typealias GofArrayMsgBlock = ([Any], String) -> Void;

/// 常用的返回字典類型的閉包類型
typealias GofDictionaryBlock = ([String: Any]) -> Void;

/// 常用的返回字典類型和錯誤提示語的閉包類型
typealias GofDictionaryMsgBlock = ([String: Any], String) -> Void;

/// 常用的返回Int類型的閉包類型
typealias GofIntBlock = (Int) -> Void;

/// 常用的返回Int類型和錯誤提示語的閉包類型
typealias GofIntMsgBlock = (Int, String) -> Void;

/// 常用的返回String類型的閉包類型
typealias GofStringBlock = (String) -> Void;

/// 常用的返回String類型和錯誤提示語的閉包類型
typealias GofStringMsgBlock = (String, String) -> Void;

/// 常用的返回任何類型(包括函數類型)的閉包類型
typealias GofAnyBlock = (Any) -> Void;

/// 常用的返回任何類型(包括函數類型)和錯誤提示語的閉包類型
typealias GofAnyMsgBlock = (Any, String) -> Void;

/// 常用的返回任何類類型的閉包類型
typealias GofAnyObjectBlock = (AnyObject) -> Void;

/// 常用的返回任何類類型和錯誤提示語的閉包類型
typealias GofAnyObjectMsgBlock = (AnyObject, String) -> Void;

/// 常用的手勢回調的閉包類型
typealias GofGestureBlock = (UIGestureRecognizer) -> Void;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM