[英]mixing objective-c and swift when subclassing
我有一个用Swift编写的UIViewController子类,叫做'BaseViewController'。 我现在有一个名为'ViewController1'的'旧'视图控制器,用Objective-C编写,我想从'BaseViewController'继承。 按照其他建议我导入了'Project-Swift.h'头文件。
像这样子类化时我的问题出现了
#import <UIKit/UIKit.h>
#import "MyProject-Swift.h"
@interface ViewController1 : BaseViewController
@end
错误是:
不能使用objc_subclassing-restricted属性对类进行子类化
它出现在@interface ...行上。
您不能在Objective-C中子类化Swift类。 比照 在本部分文档的末尾:
但是,请注意,您不能在Objective-C中子类化Swift类。
这是一个编译错误,因此U不能在objc中子类化swift类。
SWIFT_CLASS("_TtC6Swifty14ViewController")
@interface ViewController : UIViewController
@end
# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.