gpt4 book ai didi

c# - 将 Xamarin.iOS 代码转换为 native 代码?

转载 作者:行者123 更新时间:2023-11-30 10:07:40 24 4
gpt4 key购买 nike

我想将我的 Xamarin.iOS 基类转换为原生,这样当项目只需要在 iOS 中完成时,我也可以开发原生。

现在我有继承自 UICollectionViewSource 的抽象类,我真的不知道如何将其放入 Swift 中,因为它是面向协议(protocol)的。我可以采用“抽象”方式并抛出 fatalerror当需要重写属性或方法时。

或者我可以采用协议(protocol)方式,并拥有我的 UICollectionViewSource subclass采用一个协议(protocol),这会导致更好的代码完成,并且您不会忘记实现任何内容。

最佳答案

我相信最接近的是协议(protocol)和扩展。这样您就可以为具有该方法的方法提供默认实现。

protocol MyCollection : UICollectionViewDataSource {
func foo() -> Double
func fooAbstract() -> Double
}

// provide default implementations
extension MyCollection {
func foo() -> Double{
return Double.infinity;
}
}

// requires missing methods to be implemented
class NewCollection : MyCollection {
...
}

编辑来回答你的问题。如果这就是你的意思,我不是 100%,但我在从扩展调用“虚拟”方法时没有遇到问题。这是使用 UICollection 源以外的其他内容的示例(需要实现的方法太多:))。

protocol MyTwo{
func fooA2() -> Bool
}

protocol MyCollection : MyTwo {
func foo() -> Double
func fooAbstract() -> Double
}

// provide default implementations
extension MyCollection {
func foo() -> Double{
if fooA2() {
return Double.infinity;

}

return 0;
}
}

class NewCollection : MyCollection {
func fooAbstract() -> Double{
return foo();
}

func fooA2() -> Bool {
return true;
}
}

关于c# - 将 Xamarin.iOS 代码转换为 native 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35146895/

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