ios – 我可以创建一个指向内存NSData的NSURL吗?

ios – 我可以创建一个指向内存NSData的NSURL吗?,第1张

概述The docs for NSURL说: An NSURL object represents a URL that can potentially contain the location of a resource on a remote server, the path of a local file on disk, or even an arbitrary piece of encode The docs for NSURL说:

An NSURL object represents a URL that can potentially contain the
location of a resource on a Remote Server,the path of a local file on
disk,or even an arbitrary pIEce of encoded data.

我有一堆内存中的数据,我想交给一个想要通过NSURL加载资源的库。当然,我可以先写这个NSData到一个临时文件,然后创建一个文件:// NSURL,但是我宁愿把URL直接指向我已经在内存中的缓冲区。

上面引用的文档似乎表明这是可能的,但是我找不到任何如何完成它的提示。我错过了什么吗?

解决方法 NSURL支持数据:// URL-Scheme( @L_403_1@)。
此方案允许您以形式构建URL

data://data:MIME-Type;base64,<data>

一个可以工作的可可例子是:

NSImage* img = [NSImage imagenamed:@"img"];NSData* imgData = [img TIFFRepresentation];Nsstring* dataFormatString = @"data:image/png;base64,%@";Nsstring* dataString = [Nsstring stringWithFormat:dataFormatString,[imgData base64EncodedStringWithOptions:0]];NSURL* dataURL = [NSURL URLWithString:dataString];

由于base64编码的性质,通过数据URL传递大型二进制blob可能会有点低效。

您还可以实现专门处理数据的自定义NSURLProtocol。
Apple有一些使用自定义协议来传递图像对象的示例代码:https://developer.apple.com/library/mac/samplecode/SpecialPictureProtocol/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003816

总结

以上是内存溢出为你收集整理的ios – 我可以创建一个指向内存NSData的NSURL吗?全部内容,希望文章能够帮你解决ios – 我可以创建一个指向内存NSData的NSURL吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存