从NSData或其他图像类型(CFImageRef,CIImage,UIImage)创建ALAsset对象是否可行?

3
是否可以从NSData或其他图像类型(CFImageRef、CIImage、UIImage)创建ALAsset对象?
我不想将我的所有应用程序图像保存到相机胶卷中,但我想能够上传多个图像到Walgreen的QuickPrints API,这是一个只需要ALAssets进行多个图像上传的编译库。
编辑:我对Walgreen的API / SDK的理解是错误的。如果您想上传多个图像而不使用ALAssets,则必须逐个上传它们。

“是否可以创建一个ALAsset [而不保存到相机胶卷]”这个问题实际上并不是提问者想要得到答案的问题。请注意,提问者自己对他的问题的回答与原始问题几乎没有任何关系。 - matt
2个回答

1

对于这个问题的真正答案是,尽管在提问时Walgreen的文档并不完全清晰,但购物车被作为一批最多包含100张照片进行跟踪,而不是将每次上传都视为一批。

只要您不将购物车发送到Walgreen的API,并收到一个带有以下内容的结帐URL:

 [checkoutSDK postCart];

它将跟踪所有单个和多个上传的“批次”,最大限制为100,而不是在每次调用时覆盖先前的购物车:

 [checkoutSDK upload:someTypeOfImageData];

希望他们很快会在文档中添加更多细节,如果他们还没有这样做的话。

1
从文档中可以看到:"ALAsset对象代表由照片应用程序管理的照片或视频。"因此,如果您确实需要一个ALAsset对象,那么您别无选择,只能将数据保存出来。

我在 Walgreens API 中找到了一个解决方法,但在我完全满意没有通过构建虚拟 ALAsset 来绕过它的方法之前,我不会将其标记为已接受。你可能是对的,但我仍然不完全相信这是不可能的。 - Matt Foley
那我会降低你的问题等级,因为你拒绝承认正确的答案。当然有一些变通方法,比如你可以用不同的图像反复编写相同的资产,但事实仍然是ALAsset意味着“照片库中的文件”,这就是它的全部含义。 - matt
我明白你的回答在遵循最佳实践和原则方面是正确的,但是我已经知道了。在提出这个问题之前,我逐行阅读了ALAsset的文档。显然,我的问题是关于试图将一些未经Apple批准的东西组合起来进行黑客攻击,无论是否是书籍作者,说“这是不可能的”都是一个不能接受的答案。这是编程,几乎任何事情都有可能,只是有些事情可能不可取。 - Matt Foley
我想说的是,你问了(并回答了)错误的问题。你问是否可能在用户的照片库之外创建ALAsset。这是不可能的。没有任何黑客可以绕过这个问题;这是一个沙盒问题。然而,事实证明你真正想知道的是关于Walgreen's API的一些内容。 - matt
如果不能在不保存到相机胶卷的情况下欺骗ALAsset对象,请通过文档中不止一句话的证明向我证明,我会接受这个答案。我认为将来可能会用得上这个问题,所以问题仍然存在。 - Matt Foley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接