在应用程序委托中访问全局功能时出现问题

issue while accessing global func in app delegate

我是 swift 的新手,我创建了一个名为 mySession 的 swift 文件,我在该文件中存储了如下登录数据

存储登录数据

 func setLoginData (data:Data) {
        let preferences = UserDefaults.standard
        let Key_Login = "Login"

        preferences.set(data, forKey: Key_Login)
        preferences.synchronize()
    }

第二个函数用于存储数据

获取数据

func getLoginData ()->Data {
        let preferences = UserDefaults.standard
        let Key_Login = "Login"

        if preferences.object(forKey: Key_Login) == nil {
            return data
        } else {
            return preferences.data(forKey: Key_Login)!
        }
    }

所以现在我的问题是我想在我的应用程序委托中使用 getLoginData 函数来检查用户是否登录,所以无法理解如何在应用程序委托中使用该函数

您应该将这些方法封装在 class 中,并在 AppDelegate

中使用 class 的实例
class MySession { 

 func setLogin(_ data: Data){...}

 func getLoginData() -> Data {...}


}

在调用站点,实例化 MySession 并使用您的方法执行所需的操作。

class AppDelegate { 
//...
let sessionHandler = MySession()
sessionHandler.getLoginData()

 }

旁注,确保您使用正确的 Swift 4 命名约定。

首先导入AppDelegate

中的文件名
Import mySession

然后只需调用所需函数中的方法即可。

    setLoginData(data:<your Data>)

对于 example.If 你想在 didFinishLaunchingWithOptions 方法中使用它,按照这个

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    DefaultNetworkManager.appsConfigSetup()

    window = UIWindow(frame: UIScreen.main.bounds)

    setupApplication()

    setLoginData(data: <Your Data>)

    return true
}