Questions tagged «swift-extensions»


5
Swift扩展中的重写方法
我倾向于只将必需品(存储的属性,初始化器)放入我的类定义中,然后将其他所有内容移动到它们自己的extension类中,就像extension每个逻辑块一样,将其分组// MARK:。 例如,对于一个UIView子类,我将获得一个与布局相关的东西的扩展,一个用于订阅和处理事件的扩展,等等。在这些扩展中,我不可避免地必须重写一些UIKit方法,例如layoutSubviews。直到今天,我从未注意到这种方法有任何问题。 以此类的类层次结构为例: public class C: NSObject { public func method() { print("C") } } public class B: C { } extension B { override public func method() { print("B") } } public class A: B { } extension A { override public func method() { print("A") } } …



9
如何添加可选的字符串扩展名?
您可以这样创建一个字符串扩展名: extension String { func someFunc -> Bool { ... } } 但是,如果您希望它应用于可选字符串怎么办? var optionalString :String? = "" optionalString!.someFunc() /* String? does not have a member someFunc */

7
在Swift中使用where子句扩展数组类型
我想使用Accelerate框架来扩展[Float]和[Double],但是每一个都需要不同的实现。 我尝试了明显的方法: extension Array<Float> { } 并得到这个错误: “必须在具有'where'子句指定约束的非专用泛型'Array'上声明受约束的扩展” 这样在Swift 2中扩展泛型类型是否可行? 我的代码现在按预期工作了。这是显示使用Accelerate框架求和的示例。 extension _ArrayType where Generator.Element == Float { func quickSum() -> Float { var result: Float = 0 if var x = self as? [Float] { vDSP_sve(&x, 1, &result, vDSP_Length(x.count)) } return result } } extension _ArrayType where Generator.Element == …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.