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!*