0

我正在用 Swift 2.0 编写一个 iPhone 应用程序,我不希望人们能够在文本字段中输入脏字符。我正在尝试将此代码包装到一个函数中并返回一个 bool 以便稍后在应用程序中使用。到目前为止,代码在操场上完成了它应该做的事情,而没有被包装在一个函数中。但是,当我将它包装在一个函数中时,操场不喜欢该代码。有没有更简单的方法来做我正在做的事情?

我是 Swift 2.0 的新手,已阅读编程指南,但不确定如何在 SDK/API 中查找我需要的功能。我过去读过 Apple 的文档,但我不明白如何使用它。我似乎无法在其中找到我正在寻找的信息。

必须有一种方法可以避免进行数百次传球。

我也想看看以后如何使用返回值。编程指南没有给出一个很好的现实世界的例子。

这是我的第一语言。

    var randomText: String = "D*rtyCh4ract3rs!#"

    var isCleanText:Bool = true

    let dirtyCharacters: String = "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890"

    var dirtyStringArray = [String]()

    var boolCountArray = [Bool]()

    for singleCharacter in dirtyCharacters.characters {

        dirtyStringArray.append("\(singleCharacter)")

        for testCase in dirtyStringArray {

        if (randomText as NSString).containsString(testCase).boolValue {

            boolCountArray.append((randomText as NSString).containsString(testCase).boolValue)

            if boolCountArray.count > 0 {

                isCleanText = false

                print(boolCountArray)

                break

            } else {

                isCleanText = true
            }
        }
    }
}

打印(isCleanText)

4

1 回答 1

0

使用 anNSCharacterSet来保存你的“脏”字符:

let dirtyCharacters = NSCharacterSet(charactersInString: "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890")

然后你可以像这样检测任何“脏”字符的缺失:

let isCleanText = randomText.rangeOfCharacterFromSet(dirtyCharacters) == nil

您可以像这样过滤掉所有“脏”字符:

let cleanedText = randomText.componentsSeparatedByCharactersInSet(dirtyCharacters)
    .joinWithSeparator("")

NSString 类参考充满了多汁的食物。

于 2015-11-18T03:38:20.727 回答