gpt4 book ai didi

ios - 声明 `typedef SomeClass MyType` 的 Swift 等价物是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:10 26 4
gpt4 key购买 nike

我目前正在一个以 Objective-C 为主的项目中编写一些 Swift 代码。在我们的 ObjC 代码中,我们有一个 header 声明 typedef GPUImageOutput<GPUImageInput> MyFilter; .然后我们可以声明例如一个只能是 GPUImageOutput 的@property实现 GPUImageInput 的子类.

(注意:GPUImageOutputGPUImageInput 不是我定义的;它们是 GPUImage library 的一部分)

我们的 Swift 代码似乎无法识别这一点,即使 header 在我们的桥接 header 中是#imported。我试图在 Swift 中复制声明,但这些都不是正确的语法:
typealias MyFilter = GPUImageOutput, GPUImageInput
typealias MyFilter = GPUImageOutput : GPUImageInput

最佳答案

你不能这样声明类型别名。

我们能做的最好的事情是这样的:

class MyClass {
private var filter:GPUImageOutput

init<FilterType:GPUImageOutput where FilterType:GPUImageInput>(filter:FilterType) {
self.filter = filter
}

func setFilter<FilterType:GPUImageOutput where FilterType:GPUImageInput>(filter:FilterType) {
self.filter = filter
}

func someMethod() {
let output = self.filter
let input = self.filter as GPUImageInput
output.someOutputMethod()
input.someInputMethod()
}
}

关于ios - 声明 `typedef SomeClass<SomeProtocol> MyType` 的 Swift 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26474061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com