Swift:在每个子类中导入UIKit?
发布时间:2020-12-14 02:26:10 所属栏目:百科 来源:网络整理
导读:在Objective-C中,我们可以这样做: 一个.导入超类中的文件 #import "MyAwesomeClass.h"@interface MySuperViewController : UIViewController@end@implementation MySuperViewController- (void)viewDidLoad { [super viewDidLoad]; //MyAwesomeClass alloca
在Objective-C中,我们可以这样做:
一个.导入超类中的文件 #import "MyAwesomeClass.h" @interface MySuperViewController : UIViewController @end @implementation MySuperViewController - (void)viewDidLoad { [super viewDidLoad]; //MyAwesomeClass allocated,initialized,used MyAwesomeClass *awesomeClass = [MyAwesomeClass new]; } @end 湾使用在超类中导入的文件,在子类中不重新导入它 @interface MySubViewController : MySuperViewController @end @implementation MySubViewController - (void)viewDidLoad { [super viewDidLoad]; //No compilation error,since MyAwesomeClass already imported in superclass MyAwesomeClass *awesomeClass = [MyAwesomeClass new]; } @end 尝试在swift中执行相同的操作会产生编译错误: 一个.在MySuperViewController中导入UIKit import UIKit class MySuperViewController : UIViewController { @IBOutlet weak var enterPrice: UITextField! } 湾声明和使用UITextField的对象而不在MySubViewController中导入UIKit class MySubViewController: MySuperViewController { // compilation error at below line @IBOutlet weak var myButton: UIButton! } 有什么办法可以避免在上面的场景中重新导入UIKit吗?请建议.
简短回答:
是.我的理解是你需要导入项目中每个Swift文件所需的所有框架(这是一个逐个文件的要求,而不是逐个类.如果你在一个文件中定义了两个类,你只需要一个导入文件的顶部.) C中的#import / #include语句是预处理程序指令.就好像包含文件中的代码被复制/粘贴在include的位置.如果在超类的标题中包含标题,则超类的标题现在包含展开的内容.因此,当您在子类中包含超类标头时,系统框架标头将作为超类标头的一部分包含在内. Swift的工作方式略有不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |