2016-07-28 3 views
12

После преобразования моего проекта быстрых 3, я получаю следующее Value of type 'String' has no member 'stringByTrimmingCharactersInSet' ошибки на первую линии в пределах этого блока:Значения типа «String» не имеет элемента «stringByTrimmingCharactersInSet»

extension UIColor { 
    convenience init (hex:String) { 
     var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercased() // error appears on this line 

     if (cString.hasPrefix("#")) { 
      cString = (cString as NSString).substring(from: 1) 
     } 



     let rString = (cString as NSString).substring(to: 2) 
     let gString = ((cString as NSString).substring(from: 2) as NSString).substring(to: 2) 
     let bString = ((cString as NSString).substring(from: 4) as NSString).substring(to: 2) 

     var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0; 
     Scanner(string: rString).scanHexInt32(&r) 
     Scanner(string: gString).scanHexInt32(&g) 
     Scanner(string: bString).scanHexInt32(&b) 


     self.init(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: CGFloat(1)) 
    } 
} 

Я предполагаю, что ошибку происходит из-за изменения синтаксиса с 'stringByTrimmingCharactersInSet' .. какова поправка для этого?

+5

Вы должны спросить себя, почему вы не можете найти ответ самостоятельно. – matt

+3

Вы пробовали печатать в 'hex.trim' и видеть, что находит автозаполнение для вас? Или посмотрите на «Применить API-рекомендации к стандартной библиотеке»] (https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard- library.md) предложение об эволюции? – Hamish

ответ

30

Новый синтаксис выглядит так:

var cString = hex.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).uppercased() 

Как предложение, вам не нужно указывать, что cString является String, поскольку это предполагается со значением, которое вы назначаете ему.

1

Вы также можете попробовать это.

let trimmedString = hex.trimmingCharacters(in: CharacterSet.whitespaces) 
Смежные вопросы