Я пытаюсь вызвать метод класса без создания нового экземпляра. Я уверен, что вызов метода верен. Я создал класс CalculateWeek. Этот класс имеет несколько методов, которые выполняют операции с датами. Вот мой CalculateWeek класс `Вызов метода из пользовательского класса без создания нового экземпляра, IntegerLiterallConvertible error с аргументом Int
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)
И я получаю ошибку«Тип CalculateWeek»не соответствует протоколу„IntegerLiteralConvertible“ Я знаю, что код верен, потому что, если я скопирую и вставляю метод weekStart в класс View Controller, он отлично работает. Он должен иметь какое-то отношение к тому, как я вызываю метод, но я не могу понять это. метод my argument type is Int, и я отправляю Int.
Вы можете сделать метод методом типа, поставив слово «класс» перед func и перемещая календарь и дату внутри метода. Это может сработать, но это зависит от того, что такое TodayStart. Откуда это? – rdelmar