有没有办法使用 NSCopying 而不返回的对象是 type Any
?它总是强迫我投。这似乎很奇怪。我正在复制对象,Swift 不应该根据单词copy的定义知道它是同一类型吗?
是否有另一种方法可以复制我不知道的对象,或者是否有一些我缺少的“陷阱”需要这样做。
该类非常简单,例如:
class Person {
var name: String
var age: Int
}
它必须是一个类,因为我需要继承。
例子:
var john = Person(name: "John", age: 30)
var johnsClone = john.copy() as! Person
我想我可以创建一个接受现有对象的初始化程序,但这在语义上似乎不如“复制”这个词好。
init(person: Person) {
return Person(name: person.name. age: person.age)
}
我在实现自己的clone()
方法时遇到的唯一问题是,我还希望有一个可以调用clone()
许多此类对象并隐式返回相同对象类型的协议。