2016-12-27 26 views
0

私はAlamofireをリクエストに使用しています。私はjson解析にswiftyjsonを使用しています。Alamofire + SwiftyJSONでグローバル変数を定義

他のビューコントローラにグローバル変数を定義する必要があります。

私はこのコードを持っている:

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);はあるが

なぜ空白に見えますか?

ありがとうございました。私の貧しい英語のために申し訳ありません。

答えて

0

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 
    } 

} 
関連する問題