Skip to content

Instantly share code, notes, and snippets.

@fishkingsin
Last active February 15, 2019 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fishkingsin/d8b6d3302610d6b2606a22cfc53ade75 to your computer and use it in GitHub Desktop.
Save fishkingsin/d8b6d3302610d6b2606a22cfc53ade75 to your computer and use it in GitHub Desktop.
import UIKit
/*
class Person {
let name: String
init(name: String) {
self.name = name
}
deinit {
print("\(name) is be deinit ")
}
}
class Apertment {
let number: Int
// weak wont increase reference count
weak var tenant: Person?
init(number: Int) {
self.number = number
}
}
var bob :Person? = Person(name: "Bob")
// constant
let apt: Apertment? = Apertment(number: 123)
apt?.tenant = bob
bob = nil
if(apt?.tenant == nil) {
print("Oops bob is left")
}
print("end")
*/
class Person {
let name: String
weak var apartment: Apertment?
// var apartment: Apertment?
init(name: String) {
self.name = name
}
deinit {
print("\(name) is be deinit ")
}
}
class Apertment {
let number: Int
// if weak wont increase reference count
weak var tenant: Person?
// var tenant: Person?
init(number: Int) {
self.number = number
}
deinit {
print("Apertment \(number) is be deinit ")
}
}
var bob :Person? = Person(name: "Bob")
var apt: Apertment? = Apertment(number: 123)
apt?.tenant = bob
bob?.apartment = apt
bob = nil
apt = nil
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment