我正在尝试运行以下代码:
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。任何帮助都将不胜感激。
我除了@JJSaccolo
回答,您可以创建自定义的equals
方法作为新的String扩展,如:
extension String {
func isEqualToString(find: String) -> Bool {
return String(format: self) == find
}
}
使用方法:
let a = "abc"
let b = "abc"
if a.isEqualToString(b) {
println("Equals")
}
当然,原始操作符==
可能更好(工作原理与Javascript类似),但对我来说,isEqual
方法提供了一些代码清晰性,我们可以比较字符串
希望对别人有帮助,
使用==运算符而不是isEqual
Swift提供了三种比较String值的方法:字符串相等、前缀相等和后缀相等。
字符串相等
如果两个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的官方文档(搜索比较字符串)。
使用Swift,您不需要再检查isEqualToString
的相等性。
您现在可以使用==
例子:
let x = "hello"
let y = "hello"
let isEqual = (x == y)
现在isEqual是真的
。
但我想重写此行为,以便打印到控制台: 是否有方法清理此输出?我看过协议: 我认为会自动“看到”这一点,但情况似乎并非如此:
我搜了Swift的书,找不到@同步的Swift版本,请问在Swift中如何进行互斥?
我想按节组织我的代码。通常我使用,但当我试图在.swift文件中这样做时,它就不起作用了。 所以我的问题是,我是否能够以某种方式启用它,如果不能,那么如何在.swift文件中组织代码?
我仍然在学习和试验JavaFX中的GUIs,我似乎无法得到我所希望的“外观”…我试图在一个面板中分组几个标签,然后在另一个面板中添加另一个标签。但我似乎不知道如何在JavaFX中正确使用“JPanels”? 如有任何帮助,将不胜感激 编辑:这是我试图通过尝试不同的布局来实现的,但运气仍然不好
在Swift中,转义闭包参数用注释。Objective-C中是否有任何等效项,以便生成的Swift接口将标记为?
我尝试使用numpy阵列执行以下操作: 这应该给出一个结果: 但如果输入向量是numpy数组: 它(预期)返回一个: 问题是,在此之后,我需要将结果转换回numpy数组。 我想知道的是,如果有一个有效的numpy函数可以避免这些来回的转换,那该怎么办?
在Mac和Windows上,可以使用 <罢工> (替换 )和 (替换 ) (Docker 18.03+)位于容器内。 对于Linux来说,有没有一个可以在不传递env变量或使用各种CLI命令提取它的情况下开箱即用的方法?
我们有以下场景:使用Sonarqube扫描Windows10中的两个项目。 null 提前谢了。