Classes
The following classes are available globally.
-
Block based timer that uses Grand Central Dispatch internally.
See morefinal class MyClass { private let timer: BlockTimer init() { self.timer = .scheduled(timeInterval: 1.0, repeats: true) { _ in // do something every 1 second } } }
Declaration
Swift
public final class BlockTimer : ScopeFunctions
-
Many readers, single writer generic lock.
See morelet myClass = ... let lock = ReadWriteLock(myClass) lock.mutate { // do stuff with $0 to update myClass }
Declaration
Swift
public final class ReadWriteLock<T>
-
Allows weakly reference another object.
See morefinal class MyClass { // MARK: - Private Properties private let weakReference: WeakReference<MyOtherClass> // MARK: Public Functions func foo() { guard let reference = self.weakReference.value else { return } // do something with reference which is non-nil } // MARK: Initializers init(myOtherClass: MyOtherClass) { self.weakReference = WeakReference(myOtherClass) } }
Declaration
Swift
public final class WeakReference<T> : NSObject