首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组件的NSTimeInterval

组件的NSTimeInterval
EN

Stack Overflow用户
提问于 2014-08-11 14:15:46
回答 2查看 2.6K关注 0票数 2

我正在尝试将这个答案中的Objective代码和这个答案中的更正转换为Swift:

代码语言:javascript
复制
var theTimeInterval = NSTimeInterval()
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)

var date1 = NSDate()
var date2 = NSDate(timeInterval: theTimeInterval, sinceDate: date1)

var unitFlags = NSCalendarUnit(UInt.max)
var info = calendar.components(unitFlags, fromDate:date1, toDate:date2, options:0)

然而,在最后一行,Xcode给了我一个令人费解的错误:

调用中的额外参数'toDate‘

我通过命令单击NSCalendar来查看它的代码,我使用的函数签名似乎与它的components方法完全匹配。那我做错什么了?

EN

回答 2

Stack Overflow用户

发布于 2019-06-24 13:59:40

我相信这是Swift 4的正确实现。

  • 在组件中使用您需要的任何东西
  • 看起来参数‘选项’被删除了(参见医生们)
代码语言:javascript
复制
    var theTimeInterval = TimeInterval()
    var calendar = Calendar(identifier: .gregorian)

    var date1 = Date()
    var date2 = Date(timeInterval: theTimeInterval, since: date1)

    //NSCalendarUnit from objc are Calendar.Component in swift
    var components: Set<Calendar.Component> = [.hour, .minute, .second]
    var info = calendar.dateComponents(components,
                                       from: date1, to: date2)
票数 3
EN

Stack Overflow用户

发布于 2014-10-10 08:28:16

这对我来说很管用:

代码语言:javascript
复制
var info = calendar.components(unitFlags, fromDate: date1, toDate: date2, options: NSCalendarOptions(0))

你必须写NSCalentarOptions枚举。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25245445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档