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现在我知道了