MacOS 上的 Swift - 如何将 PHP post 函数的响应保存到全局变量

标签 swift macos post

我正在尝试查询一个 Web 服务,该服务会报告数据库中是否存在某个值。我可以在控制台中打印响应,但无法将其保存到可以在代码中其他地方使用的变量中。 如果该值存在,则响应将为 JSON 格式;如果不存在,则该值将为 null。 我有另一个功能来检查用户是否获得批准,然后继续或断开连接。 帮助:/

func ApprovedQuery(Quser: String){
    let Url = String(format: LogUserCheck)
    guard let serviceUrl = URL(string: Url) else { return }

    let postString = "user=" + Quser

    var request = URLRequest(url: serviceUrl)
    request.httpMethod = "POST"

    let httpBody = postString.data(using: String.Encoding.utf8)

    request.httpBody = httpBody

    let session = URLSession.shared
    session.dataTask(with: request) { (data, response, error) in
        //if let response = response {
            //print(response)
        //}               
                do {
                    guard let info = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any] else {
                        //print("User Not Approved")
                        return
                    }
                    //print("User Approved")
                    return
                } catch {
                print(error)
            } 
} .resume()

}

我尝试过使用结构体和变量,但它总是打印空白,而我在另一个函数中打印变量。 我还尝试将字符串(响应)从原始函数返回到另一个保存值但仍然为空的函数...

最佳答案

这听起来像是单例的可能用例。您可以创建一个 session 管理器类,并将需要保留的值附加到其中。它看起来像这样:

class YourSingleton {
    static let sharedInstance = YourSingleton()
    private init() {}

    var isApproved: Bool = false
}

更新方法如下:

YourSingleton.sharedInstance.isApproved = true

您可以阅读有关单例模式的更多信息 here 。有些人对这种模式有强烈的看法。就我个人而言,我并不关心它,但如果不了解更多关于您的应用程序的架构以及您想要做什么,我无法提供替代方案。

关于MacOS 上的 Swift - 如何将 PHP post 函数的响应保存到全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350638/

相关文章:

ios - OS X/iOS 崩溃报告中的不同异常代码是什么意思?

objective-c - 如何在 Objective-c 中编写确定按钮操作?

java - 404 Java 项目中的 Apache tomcat

php - 表单帖子和 jquery 帖子之间的区别

swift - 如何动态查找 cocoapods-keys 中的 key ?

ios - 在 Realm 数据库中保存数组值

ios - Swift/XCode 编译 Archive 一个非常小的 App 需要 25 分钟

json - 如何将 Swift 4 编码的 JSON 写入文件?

ruby-on-rails - 运行 bundle 后安装 pg gem 时出错

swift - 带有参数和 header 的 Alamofire 多部分形式图像上传 - Swift