构建一个通用的初始化方法
可以创建一个无论何时都能使用的通用的初始化方法,以便能够方便地进行对象的初始化。以下是一个简单的示例,其中包含一个具有常见属性的Person类和一个通用的初始化方法:
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
extension Person {
convenience init(dictionary: [String: Any]) {
let name = dictionary["name"] as? String ?? ""
let age = dictionary["age"] as? Int ?? 0
self.init(name: name, age: age)
}
}
let dictionary = ["name": "John", "age": 30]
let person = Person(dictionary: dictionary)
print(person.name) // 输出 "John"
print(person.age) // 输出 30
在代码中,Person类被定义为具有两个常见属性,名称和年龄。然后通过添加扩展来创建了一个通用的初始化方法。该方法采用采用字典作为输入,然后使用给定的键来检索值。如果值不存在,则使用默认值。最后使用这些值来初始化Person对象。在上述示例中,一个包含名称为“John”和年龄为30的字典被传递到通用初始化方法中,然后创建了一个Person对象,并打印了该对象的属性。