Na verdade, parece rápido tentar promover seqüências de caracteres para serem tratadas menos como objetos e mais como valores. No entanto, isso não significa que, por baixo do capô, o swift não trata as strings como objetos, como todos sabem que ainda é possível invocar métodos nas strings e usar suas propriedades.
Por exemplo:-
//example of calling method (String to Int conversion)
let intValue = ("12".toInt())
println("This is a intValue now \(intValue)")
//example of using properties (fetching uppercase value of string)
let caUpperValue = "ca".uppercaseString
println("This is the uppercase of ca \(caUpperValue)")
No objectC, você pode passar a referência a um objeto de string por meio de uma variável, além de chamar métodos, o que praticamente estabelece o fato de que strings são objetos puros.
Aqui está o problema quando você tenta olhar String como objetos, rapidamente você não pode passar um objeto string por referência através de uma variável. O Swift sempre passa uma cópia nova da string. Portanto, as strings são mais comumente conhecidas como tipos de valor rapidamente. De fato, dois literais de string não serão idênticos (===). Eles são tratados como duas cópias diferentes.
let curious = ("ca" === "ca")
println("This will be false.. and the answer is..\(curious)")
Como você pode ver, estamos começando a romper com o modo convencional de pensar em cordas como objetos e tratá-las mais como valores. Portanto, .isEqualToString, que foi tratado como um operador de identidade para objetos de string, não é mais válido, pois você nunca pode obter dois objetos de string idênticos no Swift. Você só pode comparar seu valor ou, em outras palavras, verificar a igualdade (==).
let NotSoCuriousAnyMore = ("ca" == "ca")
println("This will be true.. and the answer is..\(NotSoCuriousAnyMore)")
Isso fica mais interessante quando você olha para a mutabilidade de objetos de string rapidamente. Mas isso é para outra pergunta, outro dia. Algo que você provavelmente deveria procurar, porque é realmente interessante. :) Espero que isso esclareça alguma confusão. Felicidades!
===
é operadores de identidade enquanto==
é operador de igualdade (por chamada padrãoisEqual:
em NSObject e suas subclasses)