Advertisement
wpl36

Untitled

Jun 29th, 2021
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1.  
  2. let firstScope = true
  3.  
  4. // person class
  5. class Person {
  6. var dog: Dog?
  7. var closure2: (() -> ())?
  8. lazy var property: (Bool) -> (Bool) = { [unowned self] (param: Bool) -> Bool in
  9. print(self.dog)
  10. return true
  11. }
  12.  
  13. init() {
  14. dog = Dog(person: self)
  15. }
  16.  
  17. deinit {
  18. print("person is free")
  19. }
  20. }
  21.  
  22. // dog class
  23. class Dog {
  24. unowned var person: Person
  25.  
  26. init(person: Person){
  27. self.person = person
  28. }
  29. deinit {
  30. print("dog is free")
  31. }
  32. }
  33.  
  34. let closure1: () -> ()?
  35.  
  36. //------------------FIRST-------------------------------------
  37. if firstScope {
  38. print("firstScope has STARTED<--------<--------1")
  39.  
  40. let person = Person()
  41. let dog = person.dog
  42.  
  43. closure1 = { [dog] in
  44. print(dog)
  45. }
  46.  
  47. person.closure2 = { [person] in
  48. print(person)
  49. }
  50.  
  51. person.property(true)
  52.  
  53. print("firstScope has ENDED-------->-------->1")
  54. }
  55. //------------------FIRST ENDS---------------------------------
  56.  
  57.  
  58. print("THE END")
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement