麻烦使用Swift NSDate“timeIntervalSinceNow”
参见英文答案 >
“CGFloat is not convertible to Int” when trying to calculate an expression1个
我四处搜寻,被这个谜语搞得一团糟. 在Swift,Xcode 6.2中,这些行有效: let day_seconds = 86400 let one_day_from_now = NSDate(timeIntervalSinceNow:86400) 但是以下内容会返回错误: let day_seconds = 86400 let one_day_from_now = NSDate(timeIntervalSinceNow:day_seconds) 控制台输出:
这里发生了什么?为什么NSDate棘手?
这是因为timeIntervalSinceNow期望NSTimeInterval是Double.
如果你这样做: let day_seconds = 86400 day_second是Int类型,它不是方法所期望的. let one_day_from_now = NSDate(timeIntervalSinceNow:86400) 编译器隐含你传递Double,因为它是方法所期望的,这是好的. 解决方案可以使用 let day_seconds = 86400.0 要么 let day_seconds: Double = 86400 要么 let day_seconds: NSTimeInterval = 86400 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |