2014-07-02 31 views
18

Merhaba adamlar Sembolde veya karakterde hangi değişkene sahip olduğumu bilmiyorum, bu "\" kelimesini İngilizce'de nasıl söyleyeceksiniz ... Değişkenimdeki boş alan ile tüm \ nasıl değiştirilir?Swift - Dizgede Karakteri Değiştir

var content = theContent["content"] as String 
self.contentLabel.text = content.stringByReplacingOccurrencesOfString(<#target: String#>, withString: <#String#>, options: <#NSStringCompareOptions#>, range: <#Range<String.Index>?#>) 

Bu nasıl boşlukları doldurmak için ya da ben content.string kullandığım zaman sözdizim yanlış ... sonra #target içinde aynı dizeyi kullanın? Swift'i çok hızlı öğrenen var mı? : D

cevap

28

kullanılması Eğer saf Swift bu yazmak istiyorsanız

self.contentLabel.text = content.stringByReplacingOccurrencesOfString("\\", withString: " ", options: NSStringCompareOptions.LiteralSearch, range: nil) 
14

aşağıdaki deneyin:

self.contentLabel.text = Array(myString).reduce("") { $1 == "\\" ? $0 : "\($0)\($1)" } 

Bu yazının kısa bir eli yoludur:

Array(myString).reduce("", combine: { (inputString, character) -> String in 
    if character == "\\" { 
     return inputString 
    } else { 
     return "\(inputString)\(character)" 
    } 
}) 

Bu, myString'u'e dönüştürür Character s,içine geri eklemek için reduce işlevini kullanır, ancak ters eğik çizgileri yerine boş bir dize yerine

+0

Tam hızlı ne demek istiyorsunuz? Bu yoğun görünüyor. Bu örnekte neler olduğunu açıklayabilir misiniz? – Aggressor

+3

By * pure * Swift, yani herhangi bir Foundation sınıfını kullanmadığı anlamına gelir (örneğin NSString) - açıklık için cevabımı güncelledim –