Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- class ProductFactory: NSObject, NSCopying {
- var items = 8
- func copy(with zone: NSZone? = nil) -> Any {
- return ProductFactory()
- }
- }
- struct Product {
- let identifier: Int
- let name: String
- private var _factory = ProductFactory()
- init(identifier: Int, name: String) {
- self.identifier = identifier
- self.name = name
- }
- var getFactory: ProductFactory {
- return _factory
- }
- var setFactory: ProductFactory {
- mutating get {
- if !isKnownUniquelyReferenced(&factory) {
- _factory = factory.copy() as! ProductFactory
- }
- return _factory
- }
- }
- }
- let productA = Product(identifier: 234, name: "electronics")
- var productB = productA
- productB.setFactory.items = 4
- print("product A items \(productA.getFactory.items)")
- print("product B items \(productB.getFactory.items)")
Add Comment
Please, Sign In to add comment