swift扩展中的类函数(类别)

时间:2014-12-08 12:44:20

标签: ios swift

是否可以在swift中的扩展中定义类函数,就像在Objective-C类中一样,你也可以定义类函数?

objective-c

中的示例
@implementation UIColor (Additions)

+ (UIColor)colorWithHexString:(NSString *)hexString
{
    // create color from string
    // ... some code
    return newColor;
}

@end

什么是swift中的等价物?

2 个答案:

答案 0 :(得分:23)

是的,它可能并且非常相似,主要区别在于Swift扩展名未命名。

extension UIColor {
    class func colorWithHexString(hexString: String) -> UIColor {
        // create color from string
        // ... some code
        return newColor
    }
}

答案 1 :(得分:5)

记录。以下是上述解决方案的代码:

import UIKit

extension UIColor {
    convenience init(hexString:String) {

        // some code to parse the hex string
        let red = 0.0
        let green = 0.0
        let blue = 0.0
        let alpha = 1.0

        self.init(red:red, green:green, blue:blue, alpha:alpha)
    }
}

现在我可以使用:

迅速:

let clr:UIColor = UIColor(hexString:"000000")

理论上我应该可以在objective-c中使用:

UIColor *clr = [UIColor colorWithHexString:@"000000"];