2015-07-26 28 views
5

Uygulamamı iOS 9 için oluşturmaya çalışıyorum ve bir sorunla karşılaşıyorum. Daha önce, bir dizgeden bir dizgeyi alıp dizgenin içeriğini lmgtfy ve otomatik olarak arayacak bir dizeye ekleyeceğim bir düğme vardı, ancak şimdi bir hatayla karşılaşıyorum() .Swift'de Değiştirilen Dize 2

 @IBAction func googleButton() { 
     let replaced = String(map(originalString.generate()) { $0 == " " ? "+" : $0 }) 
     if let url = NSURL(string: "http://google.com/?q=\(replaced)") { 
      UIApplication.sharedApplication().openURL(url) 
     } 

      print(replaced) 
     } 

yüzden şimdi alıyorum hata diyor: İşte iOS 8 çalışmış koddur "kullanılamaz 'haritası':. Dizinin üzerine yöntem ') (harita' diyoruz" Herhangi bir fikir? Ayrıca, bağlantının işe yarayacağını, çünkü lmgtfy olması gerektiği konusunda olumlu düşünmüyorum, ancak URL'yi google olarak değiştirmedikçe bu soruyu gönderemedim.

+0

'originalString.generate()()' yerine 'harita (originalString haritası. hatayı doğru okuyorsam()) –

cevap

13

Swift 2'den itibaren String artık SequenceType ile uyumlu değildir, bu nedenle generate numaralı telefonu arayamazsınız. Bunun yerine, SequenceType'a uygun bir String.CharacterView elde etmek için characters10 özelliğini kullanmanız gerekir.

Ayrıca Swift 2 ile: map, SequenceType uzantısının bir yöntemidir. Bu nedenle bunun yerine bir serbest fonksiyonunun, bir yöntem gibi diyoruz:

let str = "ab cd ef gh" 
let replaced = String(str.characters.map { $0 == " " ? "+" : $0 }) 
// "ab+cd+ef+gh" 

Ayrıca yapabilirdi.

let replaced = str.stringByReplacingOccurrencesOfString(" ", withString: "+") 
// "ab+cd+ef+gh" 
+0

Sen bir centilmen ve bir bilgin. Görünüşe göre sorunum düzeltildi! Teşekkür ederim! –

İlgili konular