gpt4 book ai didi

Swift 继承问题。如何获得合适的类对象

转载 作者:搜寻专家 更新时间:2023-11-01 07:19:59 24 4
gpt4 key购买 nike

我有两个类(为了简化,我删除了其他字段,对象比 Person 更复杂):

class Person
{
var name: String = "Default name"

init(object: PersonEntity)
{
name = object.daysMask
}
}

class Employer: Person
{

}

我有为我配置一个人的功能

func getConiguratedPerson(name: String) -> Person
{
let person = Person()
person.name = name
}

如果我想得到Person,我只需这样做:

let person = getConiguratedPerson("Alex")

但是如果我需要 Employer 并且我也想使用这个函数怎么办

let employer = getConiguratedPerson("Alex") // returns Person as expected but need to have employer instead.

在 Objective-C 中我们可以简单地做到这一点:

Employer *employer = Employer([self getConiguratedPerson:"Alex"]) if I remember.

最佳答案

错误是 getConfiguredPerson 函数。你想要一个初始化程序。初始化器返回您自己的类,这正是您想要的。

class Person {
var name: String = "Default name"

init(name: String) {
self.name = name
}

init(object: PersonEntity) {
self.init(object.daysMask)
}
}

class Employer: Person {}

现在要创建一个人,您只需使用 Person(name: "Alex") 并使用 Employer(name: "Alex") 获得雇主。

请注意,这在 ObjC 中也是如此。你也不应该在那里有 getConfiguredPerson 。你应该有 [Person initWithName:]

关于Swift 继承问题。如何获得合适的类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666077/

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