继承Objective-C类的Swift子类不显示所有超类方法

时间:2016-06-27 14:14:00

标签: objective-c swift inheritance

由于我正在使用Swift更新用Objective-C编写的项目,因此整个问题前提可能会完全被问题所困扰。

首先,我试图从继承了它的Swift子类中访问属于Objective-C编写的类的方法。但是,我可以看到和访问某些方法,但其他方法是不可见的(就好像它们不存在一样)。

Objective-C类的.h文件如下:

#import <UIKit/UIKit.h>

@interface BaseMenuViewController : UIViewController

-(void)applyColourForeground:(UIColor *)foreground background:(UIColor *)background;
-(void)colorButton:(UIButton *)button foreground:(UIColor *)foreground background:(UIColor *)background;
- (void)spreadElementsVertical:(UIView *)firstArg, ...;
- (void)spreadElementsVerticalWithSeparation:(CGFloat)separation elements:(UIView *)firstArg, ...;
@end

Swift类看起来像这样:

import UIKit

class FontViewController: BaseMenuViewController {

    var BackButton: UIButton

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)

    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()

    }

}

前两个方法applyColourForegroundcolorButton都可以从我的Swift子类中看到和调用,但另外两个spreadElementsVerticalspreadElementsVerticalWithSeparation不是。我试图通过super.<function>BaseMenuViewController.<function>访问它们,其中<function>是每个方法的名称,但IDE只显示前面提到的两个。

我错过了什么?

感谢任何帮助。

0 个答案:

没有答案