簡體   English   中英

如何警告 Swift 中函數的調用者

[英]How to warn caller of a func in Swift

我正在逐步重構一個大型iOS Swift項目。 一些 function 必須重命名,我不能直接重命名,因為許多其他模塊直接調用它。 相反,對於第一階段的發布,我想讓 function 的調用者知道請使用這個函數而不是這個函數。 讓我用一個例子來解釋,

func length() - > Int {
    //..... some logic
}

期待在下一個版本中將其重構為,

func count() - > Int {
    //..... same logic
}

對於第一階段,我想同時保留length()count() ,但要警告其他開發人員不要使用現有的,即 length()。 所以我嘗試了,

func length() - > Int {
    #warning("Please use count() instead")
    //..... some logic
}

但是警告被拋出,而不是給調用者。 那么,讓來電者知道錯誤來電的最佳方法是什么?

注意:這里的示例只是理解問題的最簡單形式。 scope 和模塊尺寸的實際實現要廣泛得多。

您可以使用@available關鍵字管理方法的可用性。

警告用戶:

@available(*, deprecated, message: "Please use count() instead")
func length() - > Int { }

強制用戶:

@available(*, unavailable, message: "Please use count() instead")
func length() - > Int { }

建議用戶重命名 function:

@available(*, renamed: "count()")
func length() - > Int { }

如果需要,您還可以設置平台和棄用版本(即使沒有消息):

@available(iOS, deprecated:11.2)
func length() - > Int { }

使用available的關鍵字

您可以通過多種方式使用它,如果您想向開發人員顯示警告,那么您應該使用deprecated ,但是如果您想強制它們,則使用unavailable

@available(*, deprecated, message: "Please use count() instead")
func length() - > Int {
}

更多信息可在HackingWithSwift 獲得

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM