- 已关闭**。此问题为opinion-based。当前不接受答案。
- 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
8小时前关门了。
Improve this question
我正在开发一个CloudKit应用程序,我需要在其中查找用户是否登录到iCloud。我创建了一个UserAccountManager类,其中包含一个属性isSignedIn。
class UserAccountManager {
static var isSignedIn: Bool {
get async throws {
let container = CKContainer.default()
let accountStatus = try await container.accountStatus()
switch accountStatus {
case .couldNotDetermine, .restricted, .noAccount, .temporarilyUnavailable:
return false
case .available:
return true
@unknown default:
return false
}
}
}
}
当前,我的属性isSignedIn是静态属性。我的问题是它应该是静态属性还是示例属性。我是使用UserAccountManager. isSignedIn访问它,还是应该重新实现它以便创建UserAccountManager的示例。
1条答案
按热度按时间icnyk63a1#
我认为这个问题确实算得上是基于观点的。尽管如此,我有一个观点,在评论中阐述它需要太长的时间。
问问你自己为什么你有一个“UserAccountManager"。它管理什么?任何东西?在你的位置上,我会调用我的类
UserAccount
,它将建模一个用户帐户。在这一点上,isSignedIn
应该是一个示例属性应该是显而易见的。现在,您可能会争辩说,一次只能有一个人登录CloudKit,但是在任何情况下使用示例都有好处,尤其是您可以在单元测试中模拟它们。