gpt4 book ai didi

swift - 有没有办法强制在方法中使用类而不是子类?

转载 作者:行者123 更新时间:2023-11-28 05:41:51 25 4
gpt4 key购买 nike

我有一个名为 BasicUser 的父类和一个继承自 BasicUser 的名为 User 的子类。当我尝试使用用户(用户类)添加基本用户(BasicUser 类)时,它会传递整个用户对象,而不仅仅是 BasicUser。

有没有办法避免在方法中发送符合类的子类?

class BasicUser {}

class User: BasicUser {}

func addAttendingUser(_ newUser: BasicUser) {

}

let user = User()
addAttendingUser(user)

编辑:ObjectMapper 背后的一些逻辑。首先,它映射一个 Festival,因为 Festival 有一个 BasicUser 数组 (attendingUsers),它调用 BasicUser 上的映射,它是一个用户。

用户有一个 followedFestivals 数组,这是从多个线程访问它的地方。

关于用户类:

override func mapping(map: Map) {
super.mapping(map: map)
followedFestivals <- map["followed_festivals"]
}

关于节课:

override func mapping(map: Map) {
super.mapping(map: map)
attendingUsers <- map["attending_users_list"]
}

最佳答案

最简单的事情是实例化一个新对象。

class BasicUser {

init() {}

init(fromOther other: BasicUser) {
// basically copy the value from other to self
}

}

class User: BasicUser {}

func addAttendingUser(_ newUser: BasicUser) {
let newUser = BasicUser(fromOther: newUser)
// do your stuff
}

let user = User()
addAttendingUser(user)

关于swift - 有没有办法强制在方法中使用类而不是子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56374869/

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