假设我在Objective C中有一个类,通过桥接我想在我的swift项目中使用。
right: 0
现在有两个构造函数可以在桥接后的swift版本中使用
@implementation MyClass
+ (instancetype)startVideo:(NSInt *)videoName
{
return [[MyClass alloc] initWithName:videoName
offset:@"0"]
}
- (instancetype)initWithName:(NSString *)name
offset:(NSString *)offset
{
self = [super init];
return self;
}
我在快速项目中从MyClass派生类
class MyClass{
public convenience init!(videoName: String!)
public init(name: String!, offset: String)
}
使用便捷方法
创建MyClass2的对象class MyClass2 : MyClass{
var purposeOfClass: String = "Child class"
}
这里我的问题是,如果无法检查派生类返回对象,则桥接转换会使静态方法初始化器初始化器成为原因。
答案 0 :(得分:0)
在Swift init
方法中,Objective-C
- (instancetype)initWithFoo:(NSString *)foo
到Swift
init(foo : String)
是强制性的。你必须写
let obj = MyClass2(videoName:"Swift.mov")
print(obj.purposeOfClass)