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吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)