
我四处搜寻,被这个谜语搞得一团糟.
在Swift,Xcode 6.2中,这些行有效:
let day_seconds = 86400let one_day_from_Now = NSDate(timeIntervalSinceNow:86400)
但是以下内容会返回错误:
let day_seconds = 86400let one_day_from_Now = NSDate(timeIntervalSinceNow:day_seconds)
控制台输出:
“Playground execution Failed: /var/folders/4n/88gryr0j2pn318sw_g_mgkgh0000gn/T/lldb/10688/playground625.swift:24:30: error: extra argument ‘timeIntervalSinceNow’ in call
let one_day_from_Now = NSDate(timeIntervalSinceNow:day_seconds)”
这里发生了什么?为什么NSDate棘手?
@H_403_22@ 这是因为timeIntervalSinceNow期望NSTimeInterval是Double.如果你这样做:
let day_seconds = 86400
day_second是Int类型,它不是方法所期望的.
但是,当您键入数字本身时:
let one_day_from_Now = NSDate(timeIntervalSinceNow:86400)
编译器隐含你传递Double,因为它是方法所期望的,这是好的.
解决方案可以使用
NSTimeInterval(day_seconds)或Double(day_seconds)是相同的或当你声明常量时确保它是double,例如:
let day_seconds = 86400.0
要么
let day_seconds: Double = 86400
要么
let day_seconds: NSTimeInterval = 86400总结
以上是内存溢出为你收集整理的麻烦使用Swift NSDate“timeIntervalSinceNow”全部内容,希望文章能够帮你解决麻烦使用Swift NSDate“timeIntervalSinceNow”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)