Merge pull request #401 from Channe/develop

ARC章节更新到Swift2.0
This commit is contained in:
梁杰
2015-06-30 22:28:24 +08:00

View File

@ -41,10 +41,10 @@ class Person {
let name: String let name: String
init(name: String) { init(name: String) {
self.name = name self.name = name
println("\(name) is being initialized") print("\(name) is being initialized")
} }
deinit { deinit {
println("\(name) is being deinitialized") print("\(name) is being deinitialized")
} }
} }
``` ```
@ -109,7 +109,7 @@ class Person {
let name: String let name: String
init(name: String) { self.name = name } init(name: String) { self.name = name }
var apartment: Apartment? var apartment: Apartment?
deinit { println("\(name) is being deinitialized") } deinit { print("\(name) is being deinitialized") }
} }
``` ```
@ -118,7 +118,7 @@ class Apartment {
let number: Int let number: Int
init(number: Int) { self.number = number } init(number: Int) { self.number = number }
var tenant: Person? var tenant: Person?
deinit { println("Apartment #\(number) is being deinitialized") } deinit { print("Apartment #\(number) is being deinitialized") }
} }
``` ```
@ -201,7 +201,7 @@ class Person {
let name: String let name: String
init(name: String) { self.name = name } init(name: String) { self.name = name }
var apartment: Apartment? var apartment: Apartment?
deinit { println("\(name) is being deinitialized") } deinit { print("\(name) is being deinitialized") }
} }
``` ```
@ -210,7 +210,7 @@ class Apartment {
let number: Int let number: Int
init(number: Int) { self.number = number } init(number: Int) { self.number = number }
weak var tenant: Person? weak var tenant: Person?
deinit { println("Apartment #\(number) is being deinitialized") } deinit { print("Apartment #\(number) is being deinitialized") }
} }
``` ```
@ -281,7 +281,7 @@ class Customer {
init(name: String) { init(name: String) {
self.name = name self.name = name
} }
deinit { println("\(name) is being deinitialized") } deinit { print("\(name) is being deinitialized") }
} }
``` ```
@ -293,7 +293,7 @@ class CreditCard {
self.number = number self.number = number
self.customer = customer self.customer = customer
} }
deinit { println("Card #\(number) is being deinitialized") } deinit { print("Card #\(number) is being deinitialized") }
} }
``` ```
@ -347,7 +347,7 @@ john = nil
```swift ```swift
class Country { class Country {
let name: String let name: String
let capitalCity: City! var capitalCity: City!
init(name: String, capitalName: String) { init(name: String, capitalName: String) {
self.name = name self.name = name
self.capitalCity = City(name: capitalName, country: self) self.capitalCity = City(name: capitalName, country: self)
@ -378,7 +378,7 @@ class City {
```swift ```swift
var country = Country(name: "Canada", capitalName: "Ottawa") var country = Country(name: "Canada", capitalName: "Ottawa")
println("\(country.name)'s capital city is called \(country.capitalCity.name)") print("\(country.name)'s capital city is called \(country.capitalCity.name)")
// prints "Canada's capital city is called Ottawa" // prints "Canada's capital city is called Ottawa"
``` ```
@ -403,7 +403,7 @@ class HTMLElement {
let name: String let name: String
let text: String? let text: String?
lazy var asHTML: () -> String = { lazy var asHTML: Void -> String = {
if let text = self.text { if let text = self.text {
return "<\(self.name)>\(text)</\(self.name)>" return "<\(self.name)>\(text)</\(self.name)>"
} else { } else {
@ -417,7 +417,7 @@ class HTMLElement {
} }
deinit { deinit {
println("\(name) is being deinitialized") print("\(name) is being deinitialized")
} }
} }
@ -440,7 +440,7 @@ class HTMLElement {
```swift ```swift
var paragraph: HTMLElement? = HTMLElement(name: "p", text: "hello, world") var paragraph: HTMLElement? = HTMLElement(name: "p", text: "hello, world")
println(paragraph!.asHTML()) print(paragraph!.asHTML())
// prints"hello, world" // prints"hello, world"
``` ```
@ -488,7 +488,7 @@ lazy var someClosure: (Int, String) -> String = {
如果闭包没有指定参数列表或者返回类型,则可以通过上下文推断,那么可以捕获列表放在闭包开始的地方,跟着是关键字`in` 如果闭包没有指定参数列表或者返回类型,则可以通过上下文推断,那么可以捕获列表放在闭包开始的地方,跟着是关键字`in`
```swift ```swift
lazy var someClosure: () -> String = { lazy var someClosure: Void -> String = {
[unowned self] in [unowned self] in
// closure body goes here // closure body goes here
} }
@ -511,7 +511,7 @@ class HTMLElement {
let name: String let name: String
let text: String? let text: String?
lazy var asHTML: () -> String = { lazy var asHTML: Void -> String = {
[unowned self] in [unowned self] in
if let text = self.text { if let text = self.text {
return "<\(self.name)>\(text)</\(self.name)>" return "<\(self.name)>\(text)</\(self.name)>"
@ -526,7 +526,7 @@ class HTMLElement {
} }
deinit { deinit {
println("\(name) is being deinitialized") print("\(name) is being deinitialized")
} }
} }
@ -538,7 +538,7 @@ class HTMLElement {
```swift ```swift
var paragraph: HTMLElement? = HTMLElement(name: "p", text: "hello, world") var paragraph: HTMLElement? = HTMLElement(name: "p", text: "hello, world")
println(paragraph!.asHTML()) print(paragraph!.asHTML())
// prints "<p>hello, world</p>" // prints "<p>hello, world</p>"
``` ```