ios - ventajas - mezcla objetivo-c y veloz cuando subclases
ventajas de objective c (3)
Tengo una subclase de UIViewController escrita en Swift llamada ''BaseViewController''. Ahora tengo un controlador de vista ''viejo'' llamado ''ViewController1'' escrito en Objective-C que quiero heredar de ''BaseViewController''. Siguiendo otros consejos, importé el archivo de encabezado ''Project-Swift.h''.
Mi problema ocurre cuando subclases como este
#import <UIKit/UIKit.h>
#import "MyProject-Swift.h"
@interface ViewController1 : BaseViewController
@end
El error es:
No se puede subclasificar una clase con el atributo objc_subclassing-restricted
y aparece en la línea @interface ...
Es un error de compilación, por lo que U no puede subclasificar una clase rápida en objc.
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
No puede subclasificar una clase Swift en Objective-C. cf. hacia el final de esta sección de los documentos :
Sin embargo, tenga en cuenta que no puede subclasificar una clase Swift en Objective-C.