swift4 常用屬性

weixin_33912445發表於2017-09-29
  1. @inline(內聯)
//宣告這個函式絕不(never)編譯成內聯(inline)的形式
@inline(never)
func foo()  {
    print("愛情也會帶來折磨")
}
//宣告這個函式總是(always)編譯成內聯(inline)的形式
@inline(__always)
func foo()  {
    print("愛情也會帶來折磨")
}
  1. @discardableResult(結果可丟棄)
//當我們呼叫foo()方法的時候,如果該方法有返回值,但是返回值我們又不想使用的時候,可以在方法前加上@discardableResult,這樣就不會報警告了
@discardableResult
func foo(a:Int) -> String {
    return String(a)
}
  1. @available(可用的)
//introduced:引入;deprecated:棄用; unavailable不可用的
//這裡是宣告foo()函式只能在iOS上使用不能在OSX等其他裝置上使用,而且該方法只能在Target大於8.0且小於10.3能使用。
//unavailable宣告該方法不可用,錯誤資訊就是message的提示語。

@available(iOS, introduced: 8.0, deprecated: 10.3, unavailable, message: "這個方法不能用啦")
func foo() { }

4.@noreturn

//@noreturn
func foo() -> Never {
//        return ""
    fatalError("Something very, very bad happened")
}

如果某個函式一定不需要返回引數,可在函式末尾加 -> Never,而不再使用@noreturn

fatalError():致命錯誤
在除錯時我們可以使用斷言來排除類似這樣的問題,但是斷言只會在 Debug 環境中有效,而在 Release 編譯中所有的斷言都將被禁用。在遇到確實因為輸入的錯誤無法使程式繼續執行的時候,我們一般考慮以產生致命錯誤 (fatalError) 的方式來終止程式。

相關文章