繁体   English   中英

什么是钥匙,我该如何使用它们?

[英]What are keys and how do I use them?

我正在开发与iCloud兼容的应用程序,并且正在研究如何检测文件是否正在上传/下载或已完成。 我发现可以使用NSURL“键”(例如NSURLUbiquitousItemIsDownloadingKeyNSURLUbiquitousItemIsUploadingKey 检测到这 NSURLUbiquitousItemIsUploadingKey 我仍在学习编程知识,那么这些键是什么? 我如何使用它们来检测文件的状态(我希望应用程序知道文件何时完成上载到iCloud或完成下载(无论设备处于打开状态)。

我读到可以使用resourceValuesForKeys:error:来查询这些键的状态,所以我可以将其放入IF语句中,看看是否期望结果,例如“是”或“否”? 谢谢你的帮助。

if ([destination resourceValuesForKeys:[NSArray arrayWithObject:NSURLUbiquitousItemIsUploadingKey] error:NULL]) {

    //is uploading??

}

提议的代码看起来几乎可行,但是有一个问题: resourceValuesForKeys:error:返回一个字典,该字典的键与您传入的常量相同,并且其值与这些键的文档中所指定的相同。 NSURLUbiquitousItemIsUploadingKey的情况下,该值是包装BOOL值的NSNumber实例。

所以...假设destination是一个指向您的普遍存在容器中的项目的NSURL

NSError *error;
NSArray *keys = [NSArray arrayWithObject:NSURLUbiquitousItemIsUploadingKey];
NSDictionary *values = [destination resourceValuesForKeys:keys error:&error];
if (values == nil)
    NSLog(@"error: %@", error);
else if ([[values objectForKey:NSURLUbiquitousItemIsUploadingKey] boolValue])
    NSLog(@"uploading");
else
    NSLog(@"not uploading");

如果仅查询一个键,则可以使用getResourceValue:forKey:error:更加简洁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM