gpt4 book ai didi

swift - 从变量创建新的具体对象

转载 作者:行者123 更新时间:2023-11-30 12:04:22 24 4
gpt4 key购买 nike

我想为任何类型创建一个扩展方法,该方法返回具有变量具体类型的新对象,例如:

class A
{
required public init() {}
}

class B : A {}

let myProp = B()
doSomethingWith(myProp)

func doSomethingWith(_ prop:A)
{
// Should create a new object of type B:
let foo = prop.createNew()
}

到目前为止,我的扩展如下所示:

extension NSObject
{
public func createNew() -> T
{
let t = type(of: self)
let new = t.init()
}
}

但是它需要返回一个泛型类型,而我坚持这一点。我该如何正确实现createNew()

最佳答案

这只是 self ,对吧?

extension NSObject {
public func createNew() -> Self {
return type(of: self).init()
}
}

关于swift - 从变量创建新的具体对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46842193/

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