我试图从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 = "[email protected]"; //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


我已经尝试过了,还提出了一些其他建议,但似乎无法使它正常工作..请帮助..

提前致谢。

最佳答案

你可以声明

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


在一个类之外(与哪个Swift类无关)。然后,删除let

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


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

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

09-15 23:19