SwiftSynchronized 1.0.1

SwiftSynchronized 1.0.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2016年3月
SPM支持 SPM

Jed Lewison 维护。



  • Jed Lewison

SwiftSynchronized

SwiftSynchronized 提供了一个名为 synchronized 的全局公共函数,作为 Objective-C 的 @synchronized 指令的 Swift 替代。它还向 NSLock 和 NSRecursiveLock 添加了一个 performAndWait 扩展。

用法:执行代码的临界区

使用 synchronized

synchronized(self) {
    // Critical section
}

使用 NSLock 和 NSRecursiveLock

lock.performAndWait {
    // Critical section
}

用法:返回/设置值

使用 synchronized

var _privateStorage: String // The actual private storage

var threadSafeAccessor: String { // A thread safe accessor
    get { return synchronized(self, _privateStorage) }
    set { synchronized(self, _privateStorage = newValue) }
}

使用 NSLock 和 NSRecursiveLock

let lock = NSLock() // Or NSRecursiveLock()
var _privateStorage: String // The actual private storage

var threadSafeAccessor: String { // A thread safe accessor
    get { return lock.performAndWait(_privateStorage) }
    set { lock.performAndWait(_privateStorage = newValue) }
}

安装

通过 CocoaPods 安装

pod 'SwiftSynchronized'

别忘了在某些地方

import SwiftSynchronized

你的项目中。

您还可以使用 Carthage,或者直接将 SwiftSynchronized.swift 添加到您的项目中。

注意

与 Objective-C 的 @synchronized 不同,Swift synchronized 不处理异常。

变更

1.0.0 – 添加了对 autoclosures 的支持,这使得返回值和扩展 NSLock 和 NSRecursiveLock 的语法得到改进。还添加了 Carthage 支持,以及 CocoaPods 中对多个平台的支持。0.0.1 – 初始发布