gpt4 book ai didi

swift - 需要知道在外部类中定义的内部类的变量名

转载 作者:搜寻专家 更新时间:2023-11-01 06:34:52 25 4
gpt4 key购买 nike

我有这两个类:

class User:Obj
{
var firstBook:Book?
var secondBook:Book?
}

class Book:Obj
{
func getMyName() -> String
{
// Something need to do here
// return name
}
}

let user = User()

let book_1 = Book()
user.firstBook = book_1

let book_2 = Book()
user.secondBook = book_2

print(book_2.getMyName()) //Expected: secondBook
print(book_1.getMyName()) //Expected: firstBook

正如你所理解的,我需要获取父类的变量名。如果也可以获得父类,那就太好了。类型

最佳答案

您可以使用反射实现类似的效果。您需要了解书籍对象中的用户对象,因此我添加了一个父变量。它需要很弱,以避免保留循环。

class User: Obj {

var firstBook: Book? {
didSet {
firstBook?.parent = self
}
}

var secondBook: Book? {
didSet {
secondBook?.parent = self
}
}

}

class Book: Obj {

weak var parent: Obj!

func getMyName() -> String {
let mirror = Mirror(reflecting: parent)
let variableName = mirror.children.filter { $0.value as? Book === self }.first?.label
return variableName!
}

}

关于swift - 需要知道在外部类中定义的内部类的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42565765/

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