Подтвердить что ты не робот

Обрезка в Swift

По словам инженера Apple Элизабет Рид "shimming" - это когда вы используете условную компиляцию для повторного использования кода между iOS и OS X. Например:

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

@interface MyView : BaseView

@end

В сеансе WWDC 2014 Разделяя код между iOS и OS X, она также заявляет:

Если вы в буквальном смысле переводите, как бы вы могли бы скрепить Objective-C, это не будет компилироваться в Swift.

Есть способы подделать ваш код в Swift.

Но он усложняется, чем ваша основная условная компиляция которые мы можем использовать в Objective-C.

Итак, каковы способы "подделать ваш код" в Swift?

4b9b3361

Ответ 1

который будет выглядеть в Swift:

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

//

class MyClass : BaseClass {

    // ...

}