Ik probeer de onderstaande code uit te voeren:
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")
}
}
Mijn vorige code was in Objective-C, wat prima werkte:
if([[self.username text] isEqualToString: @""] ||
[[self.password text] isEqualToString: @""] ) {
Ik neem aan dat ik isEqualToString
niet in Swift kan gebruiken. Alle hulp wordt op prijs gesteld.
Antwoord 1, autoriteit 100%
Met Swift hoef je de gelijkheid niet meer te controleren met isEqualToString
U kunt nu ==
. gebruiken
Voorbeeld:
let x = "hello"
let y = "hello"
let isEqual = (x == y)
nu isEqual is true
.
Antwoord 2, autoriteit 11%
Gebruik de operator ==in plaats van isEqual
Snaren vergelijken
Swift biedt drie manieren om tekenreekswaarden te vergelijken: tekenreeksgelijkheid, voorvoegselgelijkheid en achtervoegselgelijkheid.
String Gelijkheid
Twee tekenreekswaarden worden als gelijk beschouwd als ze exact dezelfde tekens in dezelfde volgorde bevatten:
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"
.
.
.
Lees voor meer informatie officiële documentatie van Swift (zoek Comparing Strings).
Antwoord 3, autoriteit 3%
Als aanvulling op het antwoord @JJSaccolo
, kunt u een aangepaste equals
-methode maken als een nieuwe String-extensie, zoals:
extension String {
func isEqualToString(find: String) -> Bool {
return String(format: self) == find
}
}
En gebruik:
let a = "abc"
let b = "abc"
if a.isEqualToString(b) {
println("Equals")
}
Zeker, de originele operator ==
is misschien beter (werkt als in Javascript) maar voor mij geeft de isEqual
-methode enige code-duidelijkheid die we vergelijken met Strings
Ik hoop dat het iemand zal helpen,
Antwoord 4, autoriteit 2%
In Swift is de ==-operator gelijk aan de isEqual:-methode van Objective C (deze roept de isEqual-methode aan in plaats van alleen pointers te vergelijken, en er is een nieuwe ===-methode om te testen of de pointers hetzelfde zijn), dus u kan dit gewoon schrijven als:
if username == "" || password == ""
{
println("Sign in failed. Empty character")
}