我很抱歉,如果我的问题太愚蠢了,我对OOP和编程很新,但我需要想办法动态创建对象。例如,我有一个类似init的类
class User {
var name: String = ""
var age: Int = 0
init (name: String, age: Int) {
self.name = name
self.age = age
}
}
我可以使用
创建新对象var newUser = User(name: "Joe", age: 21)
但我手动代码手动完成。
我如何自动化这个过程,所以每当我需要创建一个对象时,我会自动传递名称,年龄和对象,并指定新变量而不提及变量名称(例如,有创建变量的模式) ,所以它有user1,user2,user3等)?我是否必须创建一个创建用户实例的特定构建器函数?
答案 0 :(得分:1)
如果你想为JSON创建一个庞大的用户列表,而不需要手动分配一堆变量名,我会使用一个Dictionary并动态创建键和值。所以函数看起来像这样
var dynamicallyAssignedName: String?
var dynamicallyAssignedAge: Int?
var users: Dictionary<String, User>?
func newUser(name: String, age: Int) {
var createUser = User(name: dynamicallyAssignedName, age: dynamicallyAssignedAge)
users[dynamicallyAssignedName] = createUser
}
然后你可以很容易地上传字典。
答案 1 :(得分:0)
你的意思可能是这样的:
let arr = [("Matt", 61), ("Alexey", 123)]
let arr2 = arr.map {User(name:$0.0, age:$0.1)}