Мне было интересно, почему это работает (обратите внимание, что я использую типы 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"
но если я попытаюсь использовать типы "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)
Ошибка гласит: «Не удается преобразовать тип выражения« BOOL »в тип« inout String »?» в строке scanUpToString, я даже не уверен, о каком BOOL идет речь.
Итак, NSScanner не работает с типами Swift String? Есть ли новая команда, которую я должен использовать вместо этого?