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