class Shape: NSCopying {
var lineCount: Int = 0
var name: String = ""
init (_ lineCount: Int, _ name: String) {
self.lineCount = lineCount
self.name = name
}
public func copy(with zone: NSZone? = nil) -> Any {
return Shape(lineCount, name)
}
}
let square = Shape(4, "Square")
let squareCopy = square.copy() as! Shape
print("lineCount is \(squareCopy.lineCount)")
print("name is \(squareCopy.name)")