在Swift中填充

时间:2014-06-25 08:18:47

标签: ios macos swift

根据Apple工程师Elizabeth Reid" shimming"当您使用条件编译在iOS和OS X之间重用代码时。例如:

#if TARGET_OS_IPHONE
@import UIKit;
#define BaseView UIView
#else
@import AppKit;
#define BaseView NSView
#endif

@interface MyView : BaseView

@end

在2014年WWDC会议Sharing code between iOS and OS X中,她还说:

  

如果您真的翻译了如何使用Objective-C进行填充,那么这就是   不会在Swift中编译。

     

有很多方法可以在Swift中填充你的代码。

     

但它比你的基本条件编译更复杂   我们可以在Objective-C中使用。

那么,这是什么方法来#sh;你的代码"在斯威夫特?

1 个答案:

答案 0 :(得分:33)

Swift 中看起来像这样:

#if os(iOS)
    import UIKit
    typealias BaseClass = UIView
    #else
    import AppKit
    typealias BaseClass = NSView
#endif

//

class MyClass : BaseClass {

    // ...

}
相关问题