ios - swift 闭包返回值
伊谢尔伦
伊谢尔伦 2017-04-17 17:57:03
[iOS讨论组]

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

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

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
怪我咯

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

func makeMulti(multi: Int) -> (Int) -> Int {
    return { 
        (num: Int) -> Int in 
            return (num * multi)
    }
}
let doubler2 = makeMulti(2)
print(doubler2(10))
迷茫

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

PHP中文网

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

func getServerTimeTamp(closure: (timeString: String) -> Void) {
     dispatch_async(dispatch_get_main_queue()) { 
         let dateFormatter = NSDateFormatter()
         dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
         let timeString = Bmob.getServerTimestamp()
         closure(timeString)
     }
}
黄舟

你写的函数都没有返回值

天蓬老师

加一个返回值 func getServerTimeTamp () -> String

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号