当前位置:  开发笔记 > IOS > 正文

强制将单个参数传递给多可选参数函数

如何解决《强制将单个参数传递给多可选参数函数》经验,为你挑选了1个好方法。

考虑以下功能:

func myFunction(completion: (data: Data?, error: Error?) -> ()) { }

我目前的要求是completion:只接受data值或error值,但不接受两者.一个人必须是零.

很容易将它们保持为可选,然后展开并稍后检查它们的值,但我认为如果编译器能够通知开发人员他们不能同时设置它们会更好.

从另一个角度来看,知道其中一个将永远被设置为someValue更有用.

通过这种方式,您可以保证获得一个error或者data,并且永远不必担心处理它们的情况nil.

目前有办法做到这一点吗?



1> Yannick..:

我建议你使用这样的枚举

enum Result {
    case Success(T)
    case Error(String, Int)
}

看看在Swift 2中处理异步闭包错误的最佳方法?原始答案写得更详细.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有