gpt4 book ai didi

ios - 如何访问 ubiquitousItemDownloadingStatus 资源值的值?

转载 作者:行者123 更新时间:2023-11-28 20:55:52 28 4
gpt4 key购买 nike

我有代码来检索 url 的 ubiquitousItemDownloadingStatus 资源值:

    do {

let resourceValues = try item.url.resourceValues(forKeys: [URLResourceKey.ubiquitousItemDownloadingStatusKey]

} catch {

print(error.localizedDescription)

}

但是,我不知道如何处理该值。我可以使用以下代码访问资源值:

    do {

let resourceValues = try item.url.resourceValues(forKeys: [URLResourceKey.ubiquitousItemDownloadingStatusKey])

resourceValues.ubiquitousItemDownloadingStatus // ???

} catch {

print(error.localizedDescription)

}

但我不确定在那之后该怎么做。 Foundation Library中资源值的声明是一个struct,如下:

public struct URLUbiquitousItemDownloadingStatus : Hashable, Equatable, RawRepresentable {

public init(rawValue: String)
}
extension URLUbiquitousItemDownloadingStatus {

@available(iOS 7.0, *)
public static let notDownloaded: URLUbiquitousItemDownloadingStatus

@available(iOS 7.0, *)
public static let downloaded: URLUbiquitousItemDownloadingStatus

@available(iOS 7.0, *)
public static let current: URLUbiquitousItemDownloadingStatus
}

我很困惑,因为我期待一个枚举。

如果有人能帮我澄清一下,我将不胜感激。

最佳答案

不要激动;它对我不起作用,但这是我尝试过的:

我已将访问权限包装到 var...

var ubiquityDownloadStatus: URLUbiquitousItemDownloadingStatus? {
get {
do {
let keyValues = try rootURL.resourceValues(forKeys: [.ubiquitousItemIsDownloadingKey])
return keyValues.ubiquitousItemDownloadingStatus
} catch {
os_log("Error checking download status of %s", log: .default, type: .error, rootURL.lastPathComponent)
}
return nil
}
}

...然后这样使用它:

private func statusImage(forNode node: DirectoryNode) -> NSImage? {
if !node.isUbiquitousItem { return nil }
let status = node.ubiquityDownloadStatus
switch status {
case URLUbiquitousItemDownloadingStatus.current:
return NSImage(named: NSImage.statusAvailableName)
case URLUbiquitousItemDownloadingStatus.downloaded:
return NSImage(named: NSImage.statusPartiallyAvailableName)
case URLUbiquitousItemDownloadingStatus.notDownloaded:
return NSImage(named: NSImage.statusUnavailableName)
default:
return NSImage(named: NSImage.statusNoneName)
}
}

...但我总是返回 nil 作为结果。

我已尝试将 iCloud 权利添加到我的应用程序,但没有任何效果。接下来,我正在研究这个替代解决方案,它可能更适合我的需求。

Cocoa - How to detect change in ubiquity container

关于ios - 如何访问 ubiquitousItemDownloadingStatus 资源值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496654/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com