Mi chiedevo perché questo funziona (si noti che sto usando tipi NSString):NSScanner funziona con Swift Strings?
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"
ma se cerco di utilizzare i tipi di "Stringa" al posto di "NSString", questo non verrà compilato:
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)
L'errore dice "Impossibile convertire il tipo dell'espressione" BOOL "per digitare" inout String? " sulla linea scanUpToString. Non sono sicuro di cosa BOOL è addirittura riferimento.
Quindi, non NSScanner non funziona con i tipi di Swift String? C'è un nuovo comando dovrei usare, invece?
Così, per curiosità, fa questo ha un senso, allora vi aspettate che rimarrà così? modo anche quando Swift va in produzione? Mi sembra strano che una funzione di tipo stringa non sia in grado di produrre a Tipo di stringa Swift. – Narwhal
@Narwhal Ha senso perché tali librerie sono tutte in OBJC e vengono considerate come eredità. E l'inter-op con l'eredità è sempre brutta, strana e dura. – Eonil