单独的类来存储输入

时间:2016-10-04 11:16:43

标签: ios swift xcode

以下是代码:

class settings {

     static let SharedInstance = settings()
     var city: String {
        return self.city
     }
}

现在,我可以从单独的视图访问此类:

@IBOutlet weak var cityLabel: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    cityLabel.text = settings.SharedInstance.city
}

但我希望能够在我的" settings"中更改城市的价值。从另一个角度来看。

类似的东西:

@IBOutlet weak var city: UITextField!
@IBAction func saveButtonClicked(_ sender: AnyObject) {
  settings.SharedInstance.cityVar(city.text)  
  closeKeyboard()
}

我不知道如何从这里出发

我的逻辑是在我setter内发起class,或者function string class settings { static let SharedInstance = settings() var city: String? func setCity(city: String){ self.city = city } } 并更改变量,就像我上面尝试的那样。

更新

我现在可以在此课程中设置并获取城市名称:

    override func viewDidLoad() {
        super.viewDidLoad()
        cityLabel.text = settings.SharedInstance.city

     }

现在的问题是当我在班级中访问城市变量"设置"在另一种观点中,它没有显示新值:

<?php
include 'database.php';      
$queryy = mysqli_query($con,"SELECT d.driver_name,mob_no,d.vehicle_no
from driver_info d JOIN login l ON l.seller_id=d.seller_id where d.status='free' and l.seller_id=".$login_session);

echo '<select name="driver_name">';
while ($row = mysqli_fetch_array($queryy)) 
{
echo '<option value="'.$row['driver_name'].'" value="'.$row['mob_no'].'">'.$row['driver_name'].'</option>';
echo '<br>';
}
?>

我相信它不会更新视图

1 个答案:

答案 0 :(得分:0)

如果您使用以下行:

set "first=1"
for %%a in (%sources%) do (
    if not defined first (
        echo.>> %output%
        echo.>> %output%
        echo.>> %output%
    )
    set "first="

    echo %comment_prefix%>>%output% %%a
    echo.>> %output%
    type %%a>>%output%
)

然后您的var city: String { return self.city } 将成为“获取”属性。我没有看到任何理由你必须像这样初始化变量。如果你这样做,请澄清。

我建议更改变量,使其成为可选项。然后你可以改变你的课程:

city

然后您不必为该类创建初始值设定项。如果你也想在类中创建一个setter方法,那么你可以,例如:

class settings {

    static let SharedInstance = settings()

    var city: String?

}

这意味着现在可以使用以下方法:

func setCity(city: String){
    self.city = city
}