繁体   English   中英

NSPhotoLibraryAddUsageDescription和NSPhotoLibraryUsageDescription有什么区别?

[英]What's difference between NSPhotoLibraryAddUsageDescription and NSPhotoLibraryUsageDescription?

我的应用程序今天在Xcode9上进行更新时崩溃,在iOS11上进行测试。 添加NSPhotoLibraryAddUsageDescription之后它就可以工作了,即使我已经有了NSPhotoLibraryUsageDescription

我读过他们,一个支持自iOS6,一个iOS11,但Apple没有提到他们之间的区别。 https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW73

如果我保留新的( NSPhotoLibraryAddUsageDescription ),它是否适用于iOS 8,或者我必须保留它们?

简单来自Apple官方文档

只需点击上面的图像即可获得ZOOM并阅读。

有关的更多信息:

正如我在文档中看到的,两者之间的区别是:

  • NSPhotoLibraryAddUsageDescription:您只能写入,不能读取。

  • NSPhotoLibraryUsageDescription:您可以读取和写入照片。

来自NSPhotoLibraryUsageDescription的Apple文档:

“虽然这些密钥管理对用户照片库的读写访问权限, 但如果您的应用只需要向资源库添加资产而不需要读取任何资产则最好使用NSPhotoLibraryAddUsageDescription。

我自己回答最后一个问题:

您需要声明NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescription才能在iOS NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescription上使其工作。

从技术上讲,它是不同的。 我曾经没有声明NSPhotoLibraryUsageDescription ,它在iOS 9和11上工作正常,但在iOS 10.3上失败并崩溃。

这是一个非常糟糕的版本控制Apple,而更高版本不符合并支持旧版本权限。

你需要两个。
因为一旦我尝试使用UIActivityViewController将图像保存到库中,我的iphone版本是11.3,我只使用NSPhotoLibraryUsageDescription并且因为我需要NSPhotoLibraryAddUsageDescription崩溃。
但ios 9.3没有崩溃。

基于请求权限的API以及iOS版本的写访问存在差异,因此您需要两者。

我的应用已经有NSPhotoLibraryUsageDescription,以便使用PHPhotoLibrary来保存图像。

在iOS 11上,它仍然有效,但如果我的应用程序尚未获得权限,则通过UIDocumentInteractionController中的“保存图像”共享图像会导致崩溃,并显示有关NSPhotoLibraryAddUsageDescription的警告。 如果已经通过PHPhotoLibrary授予了权限,我似乎不需要NSPhotoLibraryAddUsageDescription来“保存图像”。

暂无
暂无

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

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