swift – 将参数传递给方法时出现“调用中的额外参数”错误

我试图在 swift中编写以下Objective-C代码:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *now = [NSDate date];
NSDate *startOfTheWeek;
NSTimeInterval interval;
[cal rangeOfUnit:NSWeekCalendarUnit 
       startDate:&startOfTheWeek 
        interval:&interval 
         forDate:now];

它会写本周开始的时候开始的周期和周期间隔.

在我写的操场上

let now:NSDate = NSDate()
var startDate:NSDate
var duration: NSTimeInterval // also tried "var duration: CMutablePointer<NSTimeInterval>"
let cal = NSCalendar.currentCalendar()
cal.rangeOfUnit(unit: NSCalendarUnit.WeekCalendarUnit,startDate: startDate,interval: duration,forDate: now)"

虽然代码完成告诉我签名是

cal.rangeOfUnit(<#unit: NSCalendarUnit#>,startDate: AutoreleasingUnsafePointer<NSDate?>,interval: <#CMutablePointer<NSTimeInterval>#>,forDate: <#NSDate?#>)

在调用中说出额外参数’interval’时出错

我究竟做错了什么?

我也试过了

cal.rangeOfUnit(NSCalendarUnit.WeekCalendarUnit,forDate: now)

但这会产生错误

“could not find an overload for ‘rangeOfUnit’ that accepts the supplied arguments.”

试试这个:
let now = NSDate()
var startDate: NSDate? = nil
var duration: NSTimeInterval = 0
let cal = NSCalendar.currentCalendar()

cal.rangeOfUnit(NSCalendarUnit.WeekCalendarUnit,startDate: &startDate,interval: &duration,forDate: now)

(默认情况下,第一个参数没有外部名称,因此不应该命名.)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...