大佬教程收集整理的这篇文章主要介绍了swift2 自动引用计数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class Person { let name: String init(name: String) { self.name = name print("\(Name) is being initialized") } deinit { print("\(Name) is being deinitialized") } } var reference1: Person? var reference2: Person? var reference3: Person? reference1 = Person(name: "John Appleseed") // prints "John Appleseed is being initialized” reference2 = reference1 reference3 = reference1 reference1 = nil reference2 = nil reference3 = nil // prints "John Appleseed is being deinitialized"
class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { print("\(Name) is being deinitialized") } } class Apartment { let number: Int init(number: int) { self.number = number } var tenant: Person? deinit { print("Apartment #\(number) is being deinitialized") } } var john: Person? var number73: Apartment? john = Person(name: "John Appleseed") number73 = Apartment(number: 73) john!.apartment = number73 number73!.tenant = john john = nil number73 = nil
class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { print("\(Name) is being deinitialized") } } class Apartment { let number: Int init(number: int) { self.number = number } weak var tenant: Person? deinit { print("Apartment #\(number) is being deinitialized") } } var john: Person? var number73: Apartment? john = Person(name: "John Appleseed") number73 = Apartment(number: 73) john!.apartment = number73 number73!.tenant = john john = nil // prints "John Appleseed is being deinitialized" number73 = nil // prints "Apartment #73 is being deinitialized"
class Customer { let name: String var card: CreditCard? init(name: String) { self.name = name } deinit { print("\(Name) is being deinitialized") } } class CreditCard { let number: Int uNowned let customer: Customer init(number: Int,customer: Customer) { self.number = number self.customer = customer } deinit { print("Card #\(number) is being deinitialized") } } var john: Customer? john = Customer(name: "John Appleseed") john!.card = CreditCard(number: 1234_5678_9012_3456,customer: john!) john = nil // prints "John Appleseed is being deinitialized" // prints "Card #1234567890123456 is being deinitialized"
class Country { let name: String var capitalCity: City! init(name: String,capitalName: String) { self.name = name self.capitalCity = City(name: capitalName,country:self) } } class City { let name: String uNowned let country: Country init(name: String,country: Country) { self.name = name self.country = country } } var country = Country(name: "Canada",capitalName: "Ottawa") print("\(country.Name)'s capital city is called \(country.capitalCity.Name)") // prints "Canada's capital city is called Ottawa"
class HTMLElement { let name: String let text: String? lazy var asHTML: () -> String = { if let text = self.text { return "<\(self.Name)>\(text)</\(self.Name)>" } else { return "<\(self.Name) />" } } init(name: String,text: String? = nil) { self.name = name self.text = text } deinit { print("\(Name) is being deinitialized") } } var paragraph: HTMLElement? = HTMLElement(name: "p",text: "Hello,world") print(paragraph!.asHTML()) // prints"Hello,world" paragraph = nil
lazy var someClosure: (Int,String) -> String = { [uNowned self] (index: Int,StringToProcess: String) -> String in // closure body goes here }
lazy var someClosure: () -> String = { [uNowned self] in // closure body goes here }
class HTMLElement { let name: String let text: String? lazy var asHTML: () -> String = { [uNowned self] in if let text = self.text { return "<\(self.Name)>\(text)</\(self.Name)>" } else { return "<\(self.Name) />" } } init(name: String,world" paragraph = nil // prints "p is being deinitialized"
以上是大佬教程为你收集整理的swift2 自动引用计数全部内容,希望文章能够帮你解决swift2 自动引用计数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。