Назначенный инициализатор (designated initializer) - это главный инициализатор(конструктор), все остальные методы
создающие класс вызывают этот метод.
Как выглядит назначенный инициализатор?
| public extension Int { | |
| public var seconds: DispatchTimeInterval { | |
| return DispatchTimeInterval.seconds(self) | |
| } | |
| public var second: DispatchTimeInterval { | |
| return seconds | |
| } | |
| enum TimePeriod { | |
| case Seconds(Int) | |
| case Minutes(Int) | |
| case Hours(Int) | |
| var timeInterval: NSTimeInterval { | |
| switch self { | |
| case .Seconds(let value): return NSTimeInterval(value) | |
| case .Minutes(let value): return NSTimeInterval(value * 60) | |
| case .Hours(let value): return NSTimeInterval(value * 60 * 60) |
| private var AssociatedKey: UInt = 0 | |
| private final class AssociatedObjectBox<T> { | |
| let value: T | |
| init(_ x: T) { | |
| value = x | |
| } | |
| } |
| import Foundation | |
| import UIKit | |
| protocol NibDefinable { | |
| var nibName: String { get } | |
| } | |
| extension NibDefinable { | |
| var nibName : String { | |
| return String(self.dynamicType) |
| class Singleton { | |
| // singelton pattern | |
| private static var privateShared : Singleton? | |
| class func shared() -> Singleton { | |
| // make sure we get an instance from the singleton queue | |
| guard let uwShared = read(privateShared) else { | |
| privateShared = Singleton() | |
| return privateShared! |
| // Check UINavigationController Pop or UIViewController dismiss | |
| override func viewDidDisappear(animated: Bool) { | |
| super.viewDidDisappear(animated) | |
| let vcs = self.navigationController?.viewControllers | |
| if ((vcs?.contains(self)) == nil) { | |
| print("UINavigationController Pop") | |
| } else { |
| <html> | |
| <head> | |
| <title>AudioPlayground</title> | |
| <style>* {box-sizing: border-box;}</style> | |
| </head> | |
| <body> | |
| <h3>AudioPlayground</h3> | |
| <p>If you're happy and you know it, clap your hands!</p> | |
| <script> | |
| var Recording = function(cb){ |
| /* | |
| pluralForm(28, forms: ["год", "года", "лет"]) | |
| output: "лет" | |
| */ | |
| func pluralForm(number: Int, forms: [String]) -> String { | |
| return number % 10 == 1 && number % 100 != 11 ? forms[0] : | |
| (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20) ? forms[1] : forms[2]) | |
| } |