attributed ios swift string

ios - attributed - ¿Cómo agregar un carácter a la cadena en Swift?



nsattributedstring swift 3 (8)

Actualización para el objetivo en movimiento que es Swift:

Swift ya no tiene un operador + que puede tomar una cadena y una matriz de caracteres. (Hay un método de cadena appendContentsOf() que puede usarse para este propósito).

La mejor manera de hacerlo ahora es la respuesta de Martin R en un comentario a continuación:

var newStr:String = str + String(aCharacter)

Respuesta original: esto cambió en Beta 6. Revise las notas de la versión. Todavía lo estoy descargando, pero intente usar:

var newStr:String = str + [aCharacter]

Esto solía funcionar en Xcode 6 Beta 5 ahora recibo un error de compilación en Beta 6

for aCharacter : Character in aString { var str:String = "" var newStr:String = str.append(aCharacter) // ERROR .... }

Error : No se puede invocar append con un tipo de argumento Character


De acuerdo con la documentación de Swift 4 , puede agregar un valor de carácter a una variable de cadena con el método append () del tipo de cadena:

var welcome = "hello there" let exclamationMark: Character = "!" welcome.append(exclamationMark) // welcome now equals "hello there!"


Esto tambien funciona

var newStr:String = str + String(aCharacter)


Otra opción posible es

var s: String = "" var c: Character = "c" s += "/(c)"


Tuve que obtener las iniciales de los nombres y apellidos, y unirlos. Usando fragmentos de las respuestas anteriores, esto funcionó para mí:

var initial: String = "" if !givenName.isEmpty { let char = (givenName as NSString).substring(with: NSMakeRange(0, 1)) let str = String(char) initial.append(str) } if !familyName.isEmpty { let char = (familyName as NSString).substring(with: NSMakeRange(0, 1)) let str = String(char) initial.append(str) }


anexar append(c: Character) ES el método correcto pero su código tiene otros dos problemas.

La primera es que para iterar sobre los caracteres de una cadena debe acceder a la propiedad String.characters .

La segunda es que el método de adición no devuelve nada, por lo que debe eliminar el newStr.

El código se ve así:

for aCharacter : Character in aString.characters { var str:String = "" str.append(aCharacter) // ... do other stuff }


var stringName: String = "samontro" var characterNameLast: Character = "n" stringName += String(characterNameLast) // You get your name "samontron"


let original:String = "Hello" var firstCha = original[original.startIndex...original.startIndex] var str = "123456789" let x = (str as NSString).substringWithRange(NSMakeRange(0, 4)) var appendString1 = "/(firstCha)/(x)" as String! // final name var namestr = "yogesh" var appendString2 = "/(namestr) (/(appendString1))" as String!*