Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
27
Task/Delegates/Swift/delegates-2.swift
Normal file
27
Task/Delegates/Swift/delegates-2.swift
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
protocol Thingable : class {
|
||||
func thing() -> String
|
||||
}
|
||||
|
||||
class Delegator {
|
||||
weak var delegate: Thingable?
|
||||
func operation() -> String {
|
||||
if let d = self.delegate {
|
||||
return d.thing()
|
||||
} else {
|
||||
return "default implementation"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Delegate : Thingable {
|
||||
func thing() -> String { return "delegate implementation" }
|
||||
}
|
||||
|
||||
// Without a delegate:
|
||||
let a = Delegator()
|
||||
println(a.operation()) // prints "default implementation"
|
||||
|
||||
// With a delegate:
|
||||
let d = Delegate()
|
||||
a.delegate = d
|
||||
println(a.operation()) // prints "delegate implementation"
|
||||
Loading…
Add table
Add a link
Reference in a new issue