【问题标题】:issue while accessing global func in app delegate在应用程序委托中访问全局函数时出现问题
【发布时间】:2018-11-19 06:51:01
【问题描述】:

我是 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 函数来检查用户是否已登录,因此无法理解如何在应用委托中使用该函数

【问题讨论】:

  • 您面临什么问题?您是否尝试调用该函数并得到一些错误?
  • 导入该类,创建该类的实例并调用该函数。
  • 您的示例中的数据是什么?
  • 我做一件事我创建一个 var 并将我的类分配给我的应用程序委托中的 var mySessionClass = SomeClass() 之类的变量,但我仍然没有得到我的函数,我是新来的所以不知道到底是什么问题所以请帮助我
  • @AbuUlHassan io 不要在错误写入的任何地方使用数据

标签: ios swift nsuserdefaults appdelegate


【解决方案1】:

您应该将这些方法封装在一个类中,并在 AppDelegate 中使用该类的实例

class MySession { 

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

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


}

在调用站点,实例化MySession 并使用您的方法来做需要做的事情。

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

 }

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

【讨论】:

    【解决方案2】:

    首先导入AppDelegate中的文件名

    Import mySession
    

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

        setLoginData(data:<your Data>)
    

    例如。如果你想在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
    }
    

    【讨论】:

    • 欢迎@Vishal,祝您有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2010-11-24
    相关资源
    最近更新 更多