一个 Swift 库,用于在使用 Core Data 和 CloudKit 时监控 iCloud 帐户状态并响应同步事件。它利用了 iOS 17 和 macOS 14 中的新 Observation 框架,并使用 ObservableObject
兼容较旧的操作系统版本。
quotaExceeded
(超出配额)。将包添加到您的 Package.swift
文件
dependencies: [
.package(url: "https://github.com/fatbobman/iCloudSyncStatusKit.git", from: "0.1.0")
]
或通过 Xcode 添加
https://github.com/fatbobman/iCloudSyncStatusKit.git
import SyncStatusManager
@StateObject var syncManager = SyncStatusManager()
您可以观察 syncEvent
以监控同步状态。
struct ContentView: View {
@StateObject var syncManager = SyncStatusManager()
var body: some View {
VStack {
Text("Sync Event: \(syncManager.syncEvent)")
// Your UI components
Button("Check iCloud Status") {
Task {
let status = await syncManager.validateICloudAvailability { status, error in
print("Status: \(status)")
if let error = error {
print("Error: \(error)")
}
}
if let status = status {
print("iCloud Account Status: \(status)")
}
}
}
}
}
}
使用 validateICloudAvailability
方法检查 iCloud 帐户状态
Task {
let status = await syncManager.validateICloudAvailability { status, error in
print("Account Status: \(status)")
if let error = error {
print("Error: \(error.localizedDescription)")
}
}
if status == .available {
// Proceed with synchronization
} else {
// Handle unavailable iCloud account
}
}
初始化 SyncStatusManager
时,提供一个 quotaExceededHandler
。
let syncManager = SyncStatusManager(
quotaExceededHandler: {
// Notify the user about the quota issue
}
)
如果想要记录同步事件以进行调试,请将 showEventInLog
设置为 true
并提供一个符合 LoggerManagerProtocol
的 logger。
let syncManager = SyncStatusManager(
logger: YourLoggerInstance, // Conforming to LoggerManagerProtocol
showEventInLog: true
)
本项目采用 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。