有没有办法解决这个问题? 感谢
var data = try NSString(contentsOfFile: documentsDirectoryPath as String,
encoding: NSASCIIStringEncoding)
print(data)
if data.rangeOfString("text") != nil {
print("this is text")
}
else{
print("this is an error")
}
答案 0 :(得分:4)
rangeOfString
)和Foundation(String
)中声明了 NSString
。
但他们是不同的:
如果无法找到索引,NSString
版本将始终返回NSRange
为location
的非可选NSNotFound
结构。
let data : NSString = "sourcetext"
if data.rangeOfString("text").location != NSNotFound {...}
String
版本会返回可选的Range<Index>
,如果无法找到索引,则会nil
。
let data : String = "sourcetext"
if data.rangeOfString("text") != nil {...}
在您的情况下,您可以通过将NSString
实例强制转换为String
来使用Swift版本。
let data = try NSString(contentsOfFile... ) as String
if data.rangeOfString("text") != nil {...}
答案 1 :(得分:2)
您想使用以下代码检查是否找到了字符串:
r
当找不到值时, if data.rangeOfString("text").location != NSNotFound {
}
(尚未)返回rangeOfString
。而是返回nil
。