【发布时间】:2017-06-21 11:53:09
【问题描述】:
我正在尝试使用 Swift 制作一个股票应用程序,但我遇到了 switch 和 case 语句的问题。它给了我一个错误,它希望我在案例中添加一个问号,因此它将读取案例 ?1 而不是案例 1,当我这样做时,它给了我 3 个错误,说明预期模式、预期表达式和预期':'在“案例”之后。任何帮助都会很棒。
func timeLabelsForTimeFrame(_ range: ChartTimeRange) -> [String] {
switch range {
case .oneDay:
return ["9:30am", "10", "11", "12pm", "1", "2", "3", "4"]
case .fiveDays:
let weekday = (Calendar(identifier:
Calendar.Identifier.gregorian) as NSCalendar).components(.weekday,
from: Date()).weekday
switch weekday {
case 1:
return ["Mon", "Tues", "Wed", "Thu", "Fri"]
case 2:
return ["Tues", "Wed", "Thu", "Fri", "Mon"]
case 3:
return ["Wed", "Thu", "Fri", "Mon", "Tues"]
case 4:
return ["Thu", "Fri", "Mon", "Tues", "Wed"]
case 5:
return ["Fri", "Mon", "Tues", "Wed", "Thu"]
case 6:
return ["Mon", "Tues", "Wed", "Thu", "Fri"]
case 7:
return ["Mon", "Tues", "Wed", "Thu", "Fri"]
default: ()
}
case .tenDays:
let weekday = (Calendar(identifier: Calendar.Identifier.gregorian) as NSCalendar).components(.weekday, from: Date()).weekday
switch weekday {
//sunday
case 1:
return ["Mon", "Wed", "Fri", "Mon", "Wed", "Fri"]
case 2:
return ["Wed", "Fri", "Mon", "Wed", "Fri", "Mon"]
case 3:
return ["Wed", "Fri", "Mon", "Wed", "Fri", "Tues"]
case 4:
return ["Fri", "Mon", "Wed", "Fri", "Mon", "Wed"]
case 5:
return ["Wed", "Mon", "Wed", "Fri", "Tues", "Thu"]
case 6:
return ["Mon", "Wed", "Fri", "Mon", "Wed", "Fri"]
//saturday
case 7:
return ["Mon", "Wed", "Fri", "Mon", "Wed", "Fri"]
default: ()
}
case .oneMonth:
let fmt = DateFormatter()
fmt.dateFormat = "dd MMM"
let offset = Double(-6*24*60*60)
let start = Date()
let fifthString = fmt.string(from: start.addingTimeInterval(offset))
let fourthString = fmt.string(from: start.addingTimeInterval(offset * 2))
let thirdString = fmt.string(from: start.addingTimeInterval(offset * 3))
let secondString = fmt.string(from: start.addingTimeInterval(offset * 4))
let firstString = fmt.string(from: start.addingTimeInterval(offset * 5))
return[firstString, secondString, thirdString, fourthString, fifthString, ""]
case .threeMonths:
let fmt = DateFormatter()
fmt.dateFormat = "dd MMM"
let offset = Double(-15*24*60*60)
let start = Date()
let fifthString = fmt.string(from: start.addingTimeInterval(offset))
let fourthString = fmt.string(from: start.addingTimeInterval(offset * 2))
let thirdString = fmt.string(from: start.addingTimeInterval(offset * 3))
let secondString = fmt.string(from: start.addingTimeInterval(offset * 4))
let firstString = fmt.string(from: start.addingTimeInterval(offset * 5))
return[firstString, secondString, thirdString, fourthString, fifthString, ""]
case .oneYear:
let fmt = DateFormatter()
fmt.dateFormat = "MMM"
let offset = Double(-80*24*60*60)
let start = Date()
let fifthString = fmt.string(from: start.addingTimeInterval(offset))
let fourthString = fmt.string(from: start.addingTimeInterval(offset * 2))
let thirdString = fmt.string(from: start.addingTimeInterval(offset * 3))
let secondString = fmt.string(from: start.addingTimeInterval(offset * 4))
let firstString = fmt.string(from: start.addingTimeInterval(offset * 5))
return[firstString, secondString, thirdString, fourthString, fifthString, ""]
case .fiveYears:
let fmt = DateFormatter()
fmt.dateFormat = "yyyy"
let offset = Double(-365*24*60*60)
let start = Date()
let fifthString = fmt.string(from: start.addingTimeInterval(offset))
let fourthString = fmt.string(from: start.addingTimeInterval(offset * 2))
let thirdString = fmt.string(from: start.addingTimeInterval(offset * 3))
let secondString = fmt.string(from: start.addingTimeInterval(offset * 4))
let firstString = fmt.string(from: start.addingTimeInterval(offset * 5))
return[firstString, secondString, thirdString, fourthString, fifthString, ""]
}
return []
【问题讨论】:
标签: ios swift swift3 switch-statement case