Ios 如何声明全局变量?
这是一个非常简单的问题,我使用一个片段来获取一周中的某一天Ios 如何声明全局变量?,ios,swift,swift2,swift3,Ios,Swift,Swift2,Swift3,这是一个非常简单的问题,我使用一个片段来获取一周中的某一天 if let weekday = getDayOfWeek("2017-05-01") { print(weekday) } else { print("bad input") } func getDayOfWeek(_ today:String) -> Int? { let formatter = DateFormatter() formatter.date
if let weekday = getDayOfWeek("2017-05-01") {
print(weekday)
} else {
print("bad input")
}
func getDayOfWeek(_ today:String) -> Int? {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
guard let todayDate = formatter.date(from: today) else { return nil }
let myCalendar = Calendar(identifier: .gregorian)
let weekDay = myCalendar.component(.weekday, from: todayDate)
return weekDay
}
我需要创建“weekday”作为全局变量,这对任何人都有帮助
我所做的是:
class ViewController: UIViewController{
var weekday = NSInteger()
}
如上所述声明时,我在代码段中遇到一些错误。声明
currentWeekDay
键入到Int
var weekday = Int()
现在,如果让,请使用访问此实例属性
if let weekday = getDayOfWeek("2017-05-01") {
//weekday has block scope and available only with in this if block
self.weekday = weekday
} else {
print("bad input")
}
编辑:设置时区
以获得正确的工作日
func getDayOfWeek(_ today:String) -> Int? {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
formatter.timeZone = TimeZone(abbreviation: "UTC")!
guard let todayDate = formatter.date(from: today) else { return nil }
let myCalendar = Calendar(identifier: .gregorian)
let weekDay = myCalendar.component(.weekday, from: todayDate)
return weekDay
}
你得到了什么错误?可选类型int的值。你能截图错误消息吗?请告诉我们你得到了什么类型的错误。你真的是指全局错误吗?您似乎需要一个类级声明,该声明无法从第二个ViewController访问。如果您确实需要一个全局变量,您应该查看单例示例,或者使用seguesNiarav在控制器之间传递数据不正常,为什么我们应该这样声明为什么我们应该声明self.weekday=weekday@NiravD也许你应该更清楚地说明,工作日实际上是一个全局变量,因为不是这样,它看起来与if-let语句(应该在func中)在同一范围内。@BenjaminLowry更改实例属性名称以消除混淆。@NiravD现在我知道了