Swift:从不同swift文件中的其他类访问变量

时间:2015-08-08 16:52:31

标签: swift class variables

我试图从this answer实施解决方案,但我一直无法让它发挥作用。对于我想要访问的变量,我得到“使用未解析的标识符...”。

我有一个loginViewController.swift,当有人登录时会获取用户名和密码。

import UIKit

class loginViewController:UIViewController {

@IBOutlet weak var userEmailTextField: UITextField!
@IBOutlet weak var userPasswordTextField: UITextField!


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func loginButtonTapped(sender: AnyObject) {

    let userEmail = userEmailTextField.text;
    let userPassword = userPasswordTextField.text;

然后我有一个PostService.swift文件从MySQL数据库中获取数据..它应该使用登录人员的用户名来访问相关数据..

import Foundation

类PostService {

var settings:Settings!

let userEmail = "steve@centrix.co.za"; //This is hard coded but needs to come from the loginViewController
let userPassword = "1234";             //This is hard coded but needs to come from the loginViewController

我已尝试过这个以及其他一些建议而我似乎无法让它发挥作用..请帮助..

提前致谢。

1 个答案:

答案 0 :(得分:1)

你可以宣布

var userEmail = "";
var userPassword = "";

之外的一个类(与哪个Swift类无关)。然后,放弃let

@IBAction func loginButtonTapped(sender: AnyObject) {
    userEmail = userEmailTextField.text;
    userPassword = userPasswordTextField.text;

将存储变量,您只能使用PostService类中的。

但是,LoginViewController和PostService之间真的没有连接吗?你必须在某个地方调用PostService函数 ...也许你可以在那里传递变量?