literal empty characters nsstring swift

empty - Llamando al método NSString en una cadena en Swift



swift declare string (4)

La documentation Apple indica que

Si está trabajando con el marco de Foundation en Cocoa o Cocoa Touch, toda la API de NSString está disponible para solicitar cualquier valor de String que cree.

Si tengo un objeto String por ejemplo

var newString: String = "this is a string"

¿Cómo realizo las operaciones de NSString, como el que containsString cadenas en mi String var?


Así que lo que realmente tienes que hacer es esto

var str:NSString = "Checkcontains" str.containsString("ckc")

Observe cómo se coloca allí la declaración de una NSString explícita. A continuación, puede utilizar el método knowsString. Si solo usa var y no lo configura como NSString, entonces tiene problemas.


Después de investigar un poco, parece NSString no es una función de String , pero se puede acceder NSString a una NSString .

Bajo la documentación de Apple sobre el uso de Swift con Cocoa y Objective-C , se dice que

Swift se conecta automáticamente entre el tipo String y la clase NSString. Esto significa que en cualquier lugar que use un objeto NSString, puede usar un tipo de cadena Swift y obtener los beneficios de ambos tipos

Pero parece que solo algunas de las funciones de NSString son accesibles sin un puente explícito. Para enlazar a una NSString y usar cualquiera de sus funciones, los siguientes métodos funcionan:

//Example Swift String var var newString:String = "this is a string" //Bridging to NSString //1 (newString as NSString).containsString("string") //2 newString.bridgeToObjectiveC().containsString("string") //3 NSString(string: newString).containsString("string")

Los tres de estos trabajos. Es interesante ver que solo algunos métodos NSString están disponibles para Strings y otros necesitan puentes explícitos. Esto puede ser algo que se construye a medida que Swift se desarrolla.


Los métodos son los mismos, pero en su lugar solo usan la sintaxis de swift. Por ejemplo:

var newString: String = "this is a string" newString = newString.stringByAppendingString(" that is now longer") println(newString)

en lugar de:

NSString* newString = @"this is a string"; newString = [newString stringByAppendingString:@" that is now longer"]; NSLog(newString);

Nota:

No todos los métodos de NSString se pueden llamar en String. Algunos tienes que unirte a NSString primero así:

newString.bridgeToObjectiveC().containsString("string")


Puede llamar a cualquier método NSString en un objeto Swift String; debajo de la capucha, los dos objetos son "puenteados sin cargo". Por lo tanto, usted puede simplemente hacer:

var newString = "this is a string" if newString.containsString("string") { //do your stuff }