由于我正在使用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()
}
}
前两个方法applyColourForeground
和colorButton
都可以从我的Swift子类中看到和调用,但另外两个spreadElementsVertical
和spreadElementsVerticalWithSeparation
不是。我试图通过super.<function>
和BaseMenuViewController.<function>
访问它们,其中<function>
是每个方法的名称,但IDE只显示前面提到的两个。
我错过了什么?
感谢任何帮助。