【问题标题】:Define global variable with Alamofire + SwiftyJSON使用 Alamofire + SwiftyJSON 定义全局变量
【发布时间】:2016-12-27 18:37:12
【问题描述】:

我使用 Alamofire 进行请求,我使用 swiftyjson 进行 json 解析。

我需要为其他视图控制器定义全局变量。

我有这个代码:

import UIKit
import Alamofire
import SwiftyJSON

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    struct Settings {
        static var registration_url = String();
        static var login_url = String();
    }

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

        Alamofire.request("http://localhost/settings.php").responseJSON { response in

            if response.result.isSuccess {

                let json = JSON(data: response.data!);

                Settings.registration_url = json["registration_url"].stringValue;
                Settings.login_url = json["login_url"].stringValue;

            } else {

                Settings.registration_url = "http://localhost/register.php";
                Settings.login_url = "http://localhost/login.php";

            }

        }

        print(Settings.registration_url);
        print(Settings.login_url)

        return true
    }

}

我正在检查调试窗口,print(Settings.registration_url); 看起来是空白的

为什么?

谢谢。对不起我的英语不好。

【问题讨论】:

    标签: swift3 global-variables alamofire swifty-json


    【解决方案1】:

    您的Settings 结构不是全局的。您需要在类之外定义它以使其具有全局性:

    struct Settings {
        static var registration_url = String();
        static var login_url = String();
    }
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    
            Alamofire.request("http://localhost/settings.php").responseJSON { response in
    
                if response.result.isSuccess {
    
                    let json = JSON(data: response.data!);
    
                    Settings.registration_url = json["registration_url"].stringValue;
                    Settings.login_url = json["login_url"].stringValue;
    
                } else {
    
                    Settings.registration_url = "http://localhost/register.php";
                    Settings.login_url = "http://localhost/login.php";
    
                }
    
            }
    
            print(Settings.registration_url);
            print(Settings.login_url)
    
            return true
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多