gpt4 book ai didi

ios - 从自定义类调用方法而不创建新实例,带有 Int 参数的 IntegerLiterallConvertible 错误

转载 作者:行者123 更新时间:2023-11-29 02:11:18 24 4
gpt4 key购买 nike

我正在尝试调用类方法而不创建新实例。我很确定方法调用是正确的。我创建了一个名为CalculateWeek 的类。这个类有几个对日期进行操作的方法。这是我的CalculateWeek 类`

    import Foundation
class CalculateWeek {
let calendar = NSCalendar.currentCalendar()
var date = NSDate()

func weekStart(weekDaySelected:Int)->NSDate?{
//Get Current Weekday
let currentWeekday = calendar.components(.CalendarUnitWeekday, fromDate:date)
var weekDay = [currentWeekday.weekday] //date component
println("Current weekday is \(weekDay[0])") //

var daysToSubtract = 1
let dateComponents = NSDateComponents()
dateComponents.day = daysToSubtract

let startDate = calendar.dateByAddingComponents(dateComponents, toDate: todayStart!, options: nil)
return startDate
}

然后我尝试从我的 View Controller 类调用此方法:

var tempWeekEnd = CalculateWeek.weekStart(1)

我收到错误“TypeCalculateWeek”不符合协议(protocol)“IntegerLiteralConvertible”我知道代码是正确的,因为如果我将方法 weekStart 复制并粘贴到我的 View Controller 类中,它就可以正常工作。它一定与我如何调用该方法有关,但我无法弄清楚。在该方法中,我的参数类型是 Int,并且我发送一个 Int。

最佳答案

我在代码中发现了几个问题:

  1. weekStart() 方法不是类方法,因此不能按照您想要的方式调用。你需要实例来调用它。

  2. 您正在操作的日期是一个实例成员,如果您将其设为类方法,则无法从 weekStart() 访问它。

我建议您在创建的 CalculateWeek 实例上调用 weekStart() 或使其成为类方法以按您想要的方式调用。

在相关说明中,我请求您查看我的日期操作框架 here 。它有很多您可能需要的包装器。

关于ios - 从自定义类调用方法而不创建新实例,带有 Int 参数的 IntegerLiterallConvertible 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259180/

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