Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从类型为';的抛出函数进行的转换无效;()抛出->;()';到非抛出函数类型';(数据快照)>;无效';_Swift - Fatal编程技术网

Swift 从类型为';的抛出函数进行的转换无效;()抛出->;()';到非抛出函数类型';(数据快照)>;无效';

Swift 从类型为';的抛出函数进行的转换无效;()抛出->;()';到非抛出函数类型';(数据快照)>;无效';,swift,Swift,我有以下错误: 从类型为“(”throws->()”的抛出函数进行的转换无效 到非抛出函数类型“(DataSnapshot)->Void” 您正在完成块中抛出错误。这是不可能的,并导致错误 闭包的返回值与封闭函数的返回值无关–严格来说,throws不是返回值,但也会受到影响 为了能够从闭包中返回一些内容,您必须实现一个完成块,而不是抛出 func getUserList(completion : (Error?) -> ()) 并使用它 completion(value.isEmpty

我有以下错误:

从类型为“(”throws->()”的抛出函数进行的转换无效 到非抛出函数类型“(DataSnapshot)->Void”


您正在完成块中抛出错误。这是不可能的,并导致错误

闭包的返回值与封闭函数的返回值无关–严格来说,
throws
不是返回值,但也会受到影响

为了能够从闭包中返回一些内容,您必须实现一个完成块,而不是
抛出

func getUserList(completion : (Error?) -> ())
并使用它

completion(value.isEmpty ? UserError.Empty : nil)

旁注:您使用了太多的问号和感叹号。例如,使用可选绑定来展开可选项(并使用Swift本机集合类型)

completion(value.isEmpty ? UserError.Empty : nil)
if let value = snapshot.value as? [String:Any] {
   for key in value.keys { ...