Swift基类取决于目标(宏)

时间:2017-01-16 04:49:48

标签: swift

我想使用宏来选择要继承的类。

您可以将此语法用于say,import statements

#if os(iOS)
    import UIKit
#else
    import Cocoa
#endif

但它不适用于基类(语法错误)

#if os(iOS)
    class ImageView: UIImageView {
#else
    class ImageView: NSImageView {
#endif

    var rssi: Float? = nil {
        didSet {
            // do stuff
        }
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // do setup stuff
    }
}

我最终在类中的每个方法都有两个实现是可怕的。我是否忽略了一些东西,或者错过了某种技术?

#if os(iOS)
    class ImageView: UIImageView {
        var rssi: Float? = nil {
            didSet {
                // do stuff
            }
        }

        override func awakeFromNib() {
            super.awakeFromNib()
            // do setup stuff
        }
    }
#else
    class ImageView: NSImageView {
        var rssi: Float? = nil {
            didSet {
                // do stuff
            }
        }

        override func awakeFromNib() {
            super.awakeFromNib()
            // do setup stuff
        }
    }
#endif

0 个答案:

没有答案