oc能继承swift的类吗
OC不能直接继承Swift的类。这是因为Objective-C和Swift是两种不同的编程语言,它们的设计理念不同,导致OC无法直接继承Swift类。Objective-C是一种动态类型语言,而Swift是一种静态类型语言,这两种语言在互操作性上有一些限制和规则需要遵循
OC与Swift的互操作性规则
当需要在项目中结合使用Objective-C和Swift时,必须遵循以下规则:
1.Swift类必须继承自NSObject:如果要在Objective-C中调用Swift类,该Swift类必须是继承自NSObject的子类,并且需要在类前加上@objcMembers注解。这样,该类的所有属性和方法在编译时会自动加上@objc,从而可以被Objective-C调用
2.使用@objc注解:如果Swift类中有特定的方法或属性需要被Objective-C调用,可以使用@objc注解来标记这些成员,使其可以被Objective-C识别和调用
import Foundation @objcMembers class SwiftBaseClass: NSObject { var name: String init(name: String) { self.name = name } func greet() { print("Hello, my name is \(name)") } }
这样oc某个类就可以集成 SwiftBaseClass 了。
在这个示例中,SwiftBaseClass继承自NSObject,并且所有属性和方法都会被@objcMembers注解标记,因此可以在Objective-C中调用
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……

浙公网安备 33010602011771号