gpt4 book ai didi

ios - 为什么我不能在 Swift 中将正确的参数传递给我的静态函数?

转载 作者:搜寻专家 更新时间:2023-11-01 05:53:39 26 4
gpt4 key购买 nike

我在这里找到了一个解析日期和时间的函数:https://gist.github.com/jacks205/4a77fb1703632eb9ae79#file-timeago-swift我决定在我的项目中使用它。我将它复制到一个新类中并添加了一个共享实例:

class DateCalculation {
static let sharedInstance = DateCalculation()

func timeAgoSinceDate(date:NSDate, numericDates:Bool) -> String {
let calendar = NSCalendar.currentCalendar()
let now = NSDate()
let earliest = now.earlierDate(date)
(...)

现在当我在我正在做的代码的另一个地方使用它时:

DateCalculation.timeAgoSinceDate(created_at);

在这种情况下,created_at 是一种 NSDate。但我收到错误:

cannot convert value of type NSDate to expected argument type DateCalculation

这里有什么问题?

最佳答案

您的调用应具有以下形式:

DateCalculation.sharedInstance.timeAgoSinceDate(created_at)

您不是在调用静态方法,而是在单例上调用实例方法。

另请注意,您的定义有两个参数,并且您只使用一个参数调用它(您也可以通过为其分配默认值来使第二个参数可选,例如 numericDates:Bool = true)

另一种选择是将方法声明为 class,如果您不使用任何实例变量:

class func timeAgoSinceDate(date:NSDate, numericDates:Bool) -> String {

关于ios - 为什么我不能在 Swift 中将正确的参数传递给我的静态函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35899077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com