W D*_*son 14 xcode nsfilemanager icloud cloudkit ios9
我使用NSFileManager获取当前设备磁盘空间(总数,使用数和空闲数),如此...
let systemAttributes = try? NSFileManager.defaultManager().attributesOfFileSystemForPath(NSHomeDirectory() as String)
let space = (systemAttributes?[NSFileSystemSize] as? NSNumber)?.longLongValue
Run Code Online (Sandbox Code Playgroud)
有没有办法为用户的iCloud帐户做类似的事情?我希望能够在应用程序中显示用户的iCloud磁盘空间统计信息.
iCloud 在线容量由 Apple 决定。本地缓存大小由磁盘上的限制设置。我之前的回答提到了磁盘容量。您的示例应该返回您自己设备的大小。
下面的答案已被修改,以帮助您确定 iCloud 容器路径的文件大小。还有其他方法,例如枚举子路径,这可能是您想要的。我正在介绍应该有效的最简单的事情作品下面(我没有测试过)。如果您正在寻找不同的东西,请告诉我。
根据 Apple文档和 Xcode 中的快速帮助,您似乎可能需要查看 URLForUbiquityContainerIdentifier
返回与指定标识符关联的 iCloud 容器的 URL,并建立对该容器的访问。指向指定普遍存在容器的 URL,如果无法找到该容器或者当前用户或设备无法使用 iCloud 存储,则返回 nil。
关于使用此属性的重要注意事项:
鉴于这些信息,类似的东西可能会起作用......请务必检查文档、快速帮助和头文件以了解任何其他注意事项。
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), { () -> Void in
//Note: The container identifier is in your Capabilities > iCloud > Containers
if let iCloudPath = NSFileManager.defaultManager().URLForUbiquityContainerIdentifier("iCloud.com.yourcompanydomain.app")?.path {
let pathAttributes = try? NSFileManager.defaultManager().attributesOfItemAtPath(iCloudPath)
let space = (pathAttributes?[NSFileSize] as? NSNumber)?.unsignedLongLongValue
dispatch_async(dispatch_get_main_queue()) {
print ("iCloud disk space: \(space)")
}
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |