Swift 2中的.containsString?

时间:2015-06-18 16:05:51

标签: swift nsstring

以前,当你想看看你的Swift字符串是否包含另一个字符串时,你会把它转换为NSString并调用.containsString。 Apple凭借其无限的智慧,使这个版本具有识别能力,所以如果你在S2下尝试它,它将需要一个#available包装器,即使你的目标平台支持它(我猜这是一个bug)。

1 个答案:

答案 0 :(得分:1)

所以最好的解决方案似乎是:

.gitignore

现在要检查它,而不是这个:

extension String {
    func contains(substr: String) -> Bool {
        if #available(OSX 10.10, *) {
            return NSString(string: self).containsString(substr)
        } else {
            return self.rangeOfString(substr) != nil
        }
    }
}

你可以使用更好看的东西:

if NSString(string: line).containsString(" ")...

这不再抱怨版本,(恕我直言)看起来也更好。你几乎肯定也想要这个:

if line.contains(" ")...

Apple不断改变您获取长度的方式,我希望将来对API的任何更改都是extension String { var length: Int { return self.characters.count } } - 能够轻松修改#available。这些只是为了理智:

.length