2016-07-28 7 views
12

を持っていない、私は、このブロック内の最初の行に、次のValue of type 'String' has no member 'stringByTrimmingCharactersInSet'のエラーを取得:値が迅速3に私のプロジェクトを変換した後何のメンバーの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) 
関連する問題