我正在尝试运行下面的代码:

import UIKit

class LoginViewController: UIViewController {

@IBOutlet var username : UITextField = UITextField()
@IBOutlet var password : UITextField = UITextField()

@IBAction func loginButton(sender : AnyObject) {

    if username .isEqual("") || password.isEqual(""))
    {
        println("Sign in failed. Empty character")
    }
}

我之前的代码是在Objective-C中编写的,运行得很好:

 if([[self.username text] isEqualToString: @""] ||
    [[self.password text] isEqualToString: @""] ) {

我假设我不能在Swift中使用isEqualToString。任何帮助都将不胜感激。


当前回答

对于UITextField文本比较,我正在使用下面的代码和工作为我很好,让我知道,如果你发现任何错误。

if(txtUsername.text.isEmpty || txtPassword.text.isEmpty)
{
    //Do some stuff
}
else if(txtUsername.text == "****" && txtPassword.text == "****")
{
    //Do some stuff
}

其他回答

在Swift中,==操作符相当于Objective C的isEqual:方法(它调用isEqual方法而不仅仅是比较指针,并且有一个新的===方法来测试指针是否相同),所以你可以这样写:

if username == "" || password == ""
{
    println("Sign in failed. Empty character")
}

在Swift中,你不再需要用isEqualToString来检查相等性

现在可以使用==

例子:

let x = "hello"
let y = "hello"
let isEqual = (x == y)

现在isEqual为真。

在Swift的isEmpty函数,它将检查字符串是否为空。

 if username.isEmpty || password.isEmpty {
      println("Sign in failed. Empty character")
 }

对于UITextField文本比较,我正在使用下面的代码和工作为我很好,让我知道,如果你发现任何错误。

if(txtUsername.text.isEmpty || txtPassword.text.isEmpty)
{
    //Do some stuff
}
else if(txtUsername.text == "****" && txtPassword.text == "****")
{
    //Do some stuff
}

使用==运算符代替isEqual

比较字符串

Swift提供了三种比较字符串值的方法:字符串相等、前缀相等和后缀相等。

字符串平等

如果两个String值以相同的顺序包含完全相同的字符,则认为它们相等:

let quotation = "We're a lot alike, you and I."
let sameQuotation = "We're a lot alike, you and I."
if quotation == sameQuotation {
    println("These two strings are considered equal")
}
// prints "These two strings are considered equal"
.
.
.

更多Swift官方文档(搜索比较字符串)。