ios - 如何在 Swift 4 中将 2 个 boolean 组合在一起

标签 ios swift boolean

我正在尝试创建一个电子邮件验证,用于验证电子邮件中字符 @ 以及 @ 前后字符的位置。我可以做到这一点,但我无法将两者结合在一起。到目前为止,我有一个计算属性,它只检查电子邮件是否包含 @。我怎样才能将它们组合在一起以检查所有条件。

extension String {

    var isEmailFormat: Bool {
        if let range = self.range(of: "@") {
            _ = self[(self.startIndex)..<range.lowerBound]
            _ = self[range.upperBound...]
        }
        return self.contains("@")
    }
}


if !self.emailField.text!.isEmailFormat {
                self.addErrorMessage("Invalid email address")
}

最佳答案

附加( boolean )子句与可选绑定(bind)用逗号分隔:

if let range = self.range(of: "@"), condition1, condition2 { ... }

但是,将切片分配给 _ 不会测试任何内容,它应该是这样的:

var isEmailFormat: Bool {
    if let range = self.range(of: "@"),
        range.lowerBound > startIndex,
        range.upperBound < endIndex {
        return true
    } else {
        return false
    }
}

或者:

var isEmailFormat: Bool {
    if let range = self.range(of: "@") {
        return range.lowerBound > startIndex && range.upperBound < endIndex
    } else {
        return false
    }
}

关于ios - 如何在 Swift 4 中将 2 个 boolean 组合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54180030/

相关文章:

java - 我怎样才能让球在java中连续左右移动?

kotlin - 如何存储 Parcelable 接口(interface)的 boolean 属性?

android - 无法将 admob 与 firebase iOS/Android 项目链接

animation - 如何在 Swift 中将 gif 显示到 UIImageView 中?

基于两种情况的Python pandas dataframe回填

ios - 以给定的偏移量开始动画

ios - 我将如何在选项卡栏按钮点击(快速)上创建幻灯片菜单

ios - 使用字体变体 : small-caps with font (latin extended) on safari

ios - 将 uitabbar 实现到 uitableview

ios - 当我调用 dequeueReusableCell() 时,TableView 将实例化我的 CustomCell 并将其向上转换为 UITableViewCell?