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
33
Task/Delegates/Swift/delegates-1.swift
Normal file
33
Task/Delegates/Swift/delegates-1.swift
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import Foundation
|
||||
|
||||
protocol Thingable { // prior to Swift 1.2, needs to be declared @objc
|
||||
func thing() -> String
|
||||
}
|
||||
|
||||
class Delegator {
|
||||
weak var delegate: AnyObject?
|
||||
func operation() -> String {
|
||||
if let f = self.delegate?.thing {
|
||||
return f()
|
||||
} else {
|
||||
return "default implementation"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Delegate {
|
||||
dynamic func thing() -> String { return "delegate implementation" }
|
||||
}
|
||||
|
||||
// Without a delegate:
|
||||
let a = Delegator()
|
||||
println(a.operation()) // prints "default implementation"
|
||||
|
||||
// With a delegate that does not implement thing:
|
||||
a.delegate = "A delegate may be any object"
|
||||
println(a.operation()) // prints "default implementation"
|
||||
|
||||
// With a delegate that implements "thing":
|
||||
let d = Delegate()
|
||||
a.delegate = d
|
||||
println(a.operation()) // prints "delegate implementation"
|
||||
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