Назначенный инициализатор (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]) | |
} |