我试图在不创建新实例的情况下调用类方法。我很确定方法调用是正确的。我创建了一个名为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 Class调用此方法:
var tempWeekEnd = CalculateWeek.weekStart(1)
我收到错误消息“ Type CalculateWeek”不符合协议“ IntegerLiteralConvertible”,我知道代码是正确的,因为如果我将weekStart方法复制并粘贴到View Controller类中,则可以正常工作。它必须与我的工作方式有关我正在调用该方法,但无法弄清楚,在该方法中,我的参数类型为Int,而我正在发送一个Int。
为什么不一次创建一个对象(可能是私有属性)并在以后使用它呢?不创建任何实例是不可能的,可以var tempWeekEnd = CalculateWeek().weekStart(1)
解决的,因此您需要创建一个实例。
private var cw = CalculateWeek()
...
var tempWeekEnd = cw.weekStart(1)
希望能帮助到你
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句