在应用程序委托中访问全局功能时出现问题
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
}
我是 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 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
}