swift 闭包返回值

有个语法问题,函数是可以有返回值的,下面一个获取服务器时间的代码,我想问题的是,这个函数如何将得到的时间 timeString 这个值返回出来呢

func getServerTimeTamp { dispatch_asyncdispatch_get_main_queue { let dateFormatter = NSDateFormatter //时间格式 dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" // 调用接口,获取服务器时间 let timeString = Bmob.getServerTimestamp }
}

我写了一个简单的闭包的例子,题主可以作为参考

func makeMultimulti: Int -> Int -> Int { return { num: Int -> Int in return num * multi }
}
let doubler2 = makeMulti2
printdoubler210

首先不知道为什么要跑到主线程去处理数据,
一般会传入回调函数或者用Delegate来实现多线程同步

函数返回值是即时的,而你获取时间是不即时的,所以不能通过函数返回值进行返回,只能通过闭包返回。

func getServerTimeTampclosure: timeString: String -> Void { dispatch_asyncdispatch_get_main_queue { let dateFormatter = NSDateFormatter dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let timeString = Bmob.getServerTimestamp closuretimeString }
}

你写的函数都没有返回值

加一个返回值 func getServerTimeTamp -> String

发表评论

电子邮件地址不会被公开。 必填项已用*标注