作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有代码来检索 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 权利添加到我的应用程序,但没有任何效果。接下来,我正在研究这个替代解决方案,它可能更适合我的需求。
关于ios - 如何访问 ubiquitousItemDownloadingStatus 资源值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496654/
我有代码来检索 url 的 ubiquitousItemDownloadingStatus 资源值: do { let resourceValues = try item.ur
我是一名优秀的程序员,十分优秀!