为了账号安全,请及时绑定邮箱和手机立即绑定

这里的@noescape 和throws是什么用法呢

这里的@noescape 和throws是什么用法呢

正在回答

1 回答

throws -> 此func會有丟Exception 的狀況

參考:

Swift 迷 - Swift 2.0 异常处理

http://www.swiftmi.com/topic/313.html


@noescape -> 用在傳入func 的參數為closure,宣告他為一個"非逃逸閉包(no-escape closure)",指的是此closure只會在這個func的範圍內使用,此宣告會讓編譯器比較好管理closure的生命週期,例:

非逃逸閉包:

func print (@noescape desc: () -> String) {

    print (\(desc()))  // 拿了立馬用

}

逃逸閉包:

func savePrintElement(desc: () -> String) {

    self.elements.insert(desc)  // 先存之後用

}


參考:

标哥的技术博客 - 闭包

http://www.henishuo.com/closures-of-swift/

0 回复 有任何疑惑可以回复我~
#1

博哥小时侯很厉害 提问者

非常感谢~
2016-02-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
中国首届swift开发者大会
  • 参与学习       16455    人
  • 解答问题       5    个

最前沿的swift技术分享,了解swift最新动向掌握最新相关技术

进入课程

这里的@noescape 和throws是什么用法呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信