0
讓我們假設我有Objective C中的類,通過橋接我想在我的swift項目中使用。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;
}
現在有兩個構造函數將在迅速版本橋接後
class MyClass{
public convenience init!(videoName: String!)
public init(name: String!, offset: String)
}
我從MyClass的,我迅速的項目
class MyClass2 : MyClass{
var purposeOfClass: String = "Child class"
}
派生類使用創建MyClass2的對象便利方法
var obj = MyClass2("Swift.mov")
print(obj.purposeOfClass) // You will get exception at this point, because the constructor returned Parent's class object.
這裏我的問題是爲什麼橋接轉換使靜態方法初始化方便初始值設定項如果派生類返回對象無法檢查。