当前位置: 首页 > 知识库问答 >
问题:

Objective-C中isEqualToString的Swift等价物是什么?

冯玮
2023-03-14

我正在尝试运行以下代码:

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。任何帮助都将不胜感激。

共有3个答案

陶淳
2023-03-14

我除了@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方法提供了一些代码清晰性,我们可以比较字符串

希望对别人有帮助,

姬向明
2023-03-14

使用==运算符而不是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的官方文档(搜索比较字符串)。

苍嘉澍
2023-03-14

使用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 提前谢了。