【发布时间】:2017-09-25 21:42:31
【问题描述】:
我有 NetworkProvider,它将持续调用 api,并且一旦我收到数据,我将更新用户 ID。同时,我将从其他功能访问用户 ID。
这是数据竞争条件,有人可以帮助删除条件。
`
class NetworkProvider {
public var userID: String
func observeStateChange() {
FIRAuth.auth()?.addStateDidChangeListener({ (auth, authenticatedUser) in
if let user = authenticatedUser {
userID = user.uid
}
}
}
func currentUserID() -> String {
return self.userID
}
}`
【问题讨论】:
-
那么...如果另一个函数在准备好之前尝试访问用户 ID,您希望它如何表现?
标签: swift grand-central-dispatch data-race