2015-09-18 53 views
0

我下面这个链接教程:http://www.raywenderlich.com/97014/use-cocoapods-with-swift“[字符串]”不是转换为“[的NSString]”

据Xcode中,有上线的错误

var components = (string as NSString).componentsSeparatedByString(",") as! [NSString] 

它说'[String]'不能转换为'[NSString]'。到底发生了什么,我该如何解决?

谢谢!下面是代码:

import UIKit 

func RGB(red: CGFloat, green: CGFloat, blue: CGFloat) -> UIColor { 
    return RGBA(red, green: green, blue: blue, alpha: 255) 
} 

func RGBA(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> UIColor { 
    return UIColor(red: red/255, green: green/255, blue: blue/255, alpha: alpha/255) 
} 

extension UIColor { 

    class func RGBAColorFromString(string: String?) -> UIColor? { 

    if let string = string { 

     var components = (string as NSString).componentsSeparatedByString(",") as! [NSString] 

     if components.count == 3 { 
     components.append("1.0") 
     } 

     if components.count != 4 { 
     return nil 
     } 

     let red = CGFloat(components[0].floatValue/255) 
     let green = CGFloat(components[1].floatValue/255) 
     let blue = CGFloat(components[2].floatValue/255) 
     let alpha = CGFloat(components[3].floatValue/255) 

     return UIColor(red: red, green: green, blue: blue, alpha: alpha) 
    } 

    return nil 
    } 
} 

回答

1

它的工作原理与此语法:

var components = string.componentsSeparatedByString(",") as [NSString] 
+0

我很惊讶,因为他的代码是为我工作的罚款。 –

+0

OP的代码在Swift 1.2中很好,错误是针对Swift 2的(但实际上OP没有给出这个信息,我会在我能的时候给他们的问题添加swift2标签(因为现在有一个未决的建议编辑) )。 – Moritz

+0

感谢您的信息好友.. :) –