【问题标题】:iPhone ALAssets: Can assets be destructively edited?iPhone ALAAssets:资产可以被破坏性编辑吗?
【发布时间】:2012-08-22 17:25:02
【问题描述】:

查看ALAssetsLibrary API,我看到了一些创建新资产的方法: writeImageDataToSavedPhotosAlbum:metadata:completionBlock: writeImageToSavedPhotosAlbum:metadata:completionBlock: writeImageToSavedPhotosAlbum:orientation:completionBlock: writeVideoAtPathToSavedPhotosAlbum:completionBlock:

这些似乎表明您应该只创建新资产。不过我的问题是:有没有办法对资产进行破坏性编辑?还是您总是为编辑创建新图像?我希望是后者,因为我希望每个资产都被视为唯一的、只创建一次的资产。

【问题讨论】:

    标签: ios alassetslibrary


    【解决方案1】:

    我发现无法删除或更改库中的资产。当我在资产库中创建项目并且我无法删除它们时,这有点痛苦。但这似乎是苹果的愿望。很可能是因为他们不希望应用能够从用户库中删除图像和视频。只有通过相机应用程序或其他“Apple”应用程序才能删除资产。

    我有点希望他们能让您弹出一个资产的删除确认窗口,让用户决定(苹果创建的)确认页面。

    【讨论】:

    • 感谢您的确认。我认为是这种情况,但想与另一个开发人员进行验证。根据我的需要,我需要知道资产是否已更新(创建后)。这有助于我避免担心这一点;如果我有对资产 URL 的引用并且它在资产库中,那么我可以假设它是相同的版本。很抱歉给您带来不便。
    • 如果资产被“编辑”,它将被删除并重新创建。此时 assets-library:// url 将无效,因为它包含 GUID。再次获得该指南的机会微乎其微。即使在照片应用中编辑它(例如裁剪或旋转)也会重新创建资源而不是编辑它。
    【解决方案2】:

    我还没有尝试过,但是从 iOS 5 开始,如果图像被标记为可编辑(仅当图像是最初创建的),似乎可以使用 ALAsset 上的 setImageData 方法编辑图像通过您的应用程序):

    http://developer.apple.com/library/ios/#documentation/AssetsLibrary/Reference/ALAsset_Class/Reference/Reference.html#//apple_ref/occ/instm/ALAsset/setImageData:metadata:completionBlock:

    不过好像不能删除图片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2013-12-02
      • 2015-03-03
      相关资源
      最近更新 更多