SyncSession
public extension SyncSession
-
由会话对象表示的会话的当前状态。
看
RLMSyncSessionState
声明
Swift
typealias State = RLMSyncSessionState
-
同步会话连接的当前状态。
看
RLMSyncConnectionState
声明
Swift
typealias ConnectionState = RLMSyncConnectionState
-
声明
Swift
enum ProgressDirection : Sendable
-
声明
Swift
enum ProgressMode : Sendable
-
与进度通知区块相对应的令牌。
对令牌调用
invalidate()
以停止通知。 如果通知块已自动停止,则调用invalidate()
不会执行任何操作。 应在销毁令牌之前调用invalidate()
。声明
Swift
typealias ProgressNotificationToken = RLMProgressNotificationToken
-
封装进度信息的结构体。
查看更多声明
Swift
struct Progress : Sendable
-
注册进度通知块。
如果会话已从同步子系统收到进度信息,则将立即调用该区块。 否则,一旦进度信息可用,就会立即调用它。
可以同时在同一个会话中注册多个区块。 每个区块都将在专门用于进度通知的侧队列上被调用。
只要需要进度通知,就必须保留此方法返回的令牌;当不再需要通知时和销毁令牌之前,应对令牌调用
invalidate()
方法。如果没有返回令牌,则永远不会再次调用通知块。 造成这种情况的原因有很多。 如果会话以前遇到过致命错误,则它将不接受进度通知块。 如果该区块是在
forCurrentlyOutstandingWork
模式下配置的,但没有其他进度可报告(例如,可传输字节数和已传输字节数相等),则不会再次调用该区块。声明
Swift
@preconcurrency func addProgressNotification(for direction: ProgressDirection, mode: ProgressMode, block: @Sendable @escaping (Progress) -> Void) -> ProgressNotificationToken?
参数
direction
要在此进度通知块中追踪的传输方向(上传或下载)。
mode
此进度通知块的所需行为。
block
通知可用时要调用的区块。
返回值
只要您希望发送通知,就必须持有的令牌。
-
声明
Swift
func wait(for direction: ProgressDirection, queue: DispatchQueue? = nil, block: @Sendable @escaping (Error?) -> Void)
参数
direction
要等待的传输方向(上传或下载)。
queue
要将回调分派到的队列。
block
等待完成时要调用的区块。
-
wait(for:
异步(Asynchronous)) 声明
Swift
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) func wait(for direction: ProgressDirection) async throws
参数
direction
要等待的传输方向(上传或下载)。