ALAsset 和 PHAsset 有什么区别?

What is the difference between ALAsset and PHAsset?

今天早上我一直很好奇 PHAsset。我上个月曾经处理过ALAsset。我从 Apple 网站下载了一个 iOS 项目,该项目使用 ALAsset 制作了一个简单的 iOS 类似照片的应用程序,我对其进行了修改以添加更多功能 iOS Photos - 像应用程序。然后我的老板处理了我的项目,并告诉整个办公室我应该接受培训,他必须重新编写整个项目,因为我的代码大部分都过时了(可能是因为使用 ALAsset?)。我的老板在 iOS 方面非常好,我看到了他的代码,他正在使用 PHAsset

那么ALAssetPHAsset有什么区别呢?我还在 Apple/iOS 论坛上看到一个帖子,说 PHAsset 是新的,ALAsset 是旧的。

此外,我想知道这两者之间哪个更好,以及在将元数据写入图像时这两个哪个更容易使用。

我是iOS的新手(2个月),我可以看到PHAssetALAsset都来自NSObject

https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html

https://developer.apple.com/library/prerelease/ios/documentation/AssetsLibrary/Reference/ALAsset_Class/index.html

正如您从这两个 类 的参考文档中看到的那样,它们来自两个不同的框架。

PHAsset 来自较新的照片框架(在 iOS 8.0 中添加)。

ALAsset 来自原始的 AssetsLibrary 框架。

如果您应用的部署目标是 iOS 8.0 或更新版本,您应该使用更新的框架。如果您的应用需要支持 iOS 7 或更早版本,请仅使用较旧的 AssetsLibrary 框架。

在这种情况下,哪个更容易的问题是无关紧要的。如果可能,请使用较新的。 Apple 始终鼓励使用最新的框架、库、OS、硬件等

您还会注意到整个 AssetsLibrary 框架已被弃用。这意味着它已经过时了。它仍然有效,但不鼓励使用它以支持更新的库。