2016-07-28 26 views
12

Sau khi chuyển đổi dự án của tôi để nhanh chóng 3, tôi nhận được sau Value of type 'String' has no member 'stringByTrimmingCharactersInSet' lỗi trên dòng đầu tiên trong khối này:Giá trị của loại 'String' không có thành viên '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)) 
    } 
} 

Tôi đoán lỗi xuất phát từ sự thay đổi về cú pháp với 'stringByTrimmingCharactersInSet' .. điều chỉnh cho điều này là gì?

+5

Bạn nên tự hỏi tại sao bạn không thể tự mình khám phá câu trả lời. – matt

+3

Bạn đã thử nhập vào 'hex.trim' và thấy những gì tự động hoàn thành tìm thấy cho bạn? Hoặc xem ["Áp dụng Nguyên tắc API cho Thư viện Chuẩn"] (https://github.com/apple/swift-evolution/blob/master/proposals/0006-apply-api-guidelines-to-the-standard- library.md) đề xuất tiến hóa? – Hamish

Trả lời

30

Cú pháp mới là như thế này:

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

Như một gợi ý, bạn không cần phải xác định rằng cString là một String, vì điều này được giả định với giá trị bạn đang gán cho nó.

1

Bạn cũng có thể thử tính năng này.

let trimmedString = hex.trimmingCharacters(in: CharacterSet.whitespaces) 
Các vấn đề liên quan