Nar*_*hal 9 nsstring nsscanner swift xcode6 ios8
我想知道为什么这样做(注意我使用的是NSString类型):
let stringToSearch:NSString = "I want to make a cake and then prepare coffee"
let searchTerm:NSString = "cake"
let scanner = NSScanner(string: stringToSearch)
var result:NSString? = nil
scanner.scanUpToString(searchTerm, intoString:&result)
println(result) // correctly outputs "I want to make a"
Run Code Online (Sandbox Code Playgroud)
但如果我尝试使用"String"类型而不是"NSString",则无法编译:
let altStringToSearch:String = "I want to make a cake and then prepare coffee"
let altSearchTerm:String = "cake"
let altScanner = NSScanner(string: altStringToSearch)
var altResult:String? = nil
altScanner.scanUpToString(altSearchTerm, intoString:&altResult)
println(result)
Run Code Online (Sandbox Code Playgroud)
错误说"无法转换表达式的类型'BOOL'来输入'inout String?' 在scanUpToString行上.我不确定它甚至指的是什么BOOL.
那么,NSScanner不能与Swift String类型一起使用吗?是否有我应该使用的新命令?
Ada*_*dam 14
该scanUpToString
方法的第二个参数必须是指向a的指针NSString
.其他参数可以String
.此代码将起作用:
let altStringToSearch:String = "I want to make a cake and then prepare coffee"
let altSearchTerm:String = "cake"
let altScanner = NSScanner(string: altStringToSearch)
var altResult:NSString?
altScanner.scanUpToString(altSearchTerm, intoString:&altResult) // altResult : "I want to make a "
Run Code Online (Sandbox Code Playgroud)