Tho*_*ing 28
NSURL支持data:// URL-Scheme(RFC 2397).
此方案允许您以.的形式构建URL
data://data:MIME-Type;base64,<data>
Run Code Online (Sandbox Code Playgroud)
一个可行的Cocoa示例是:
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];
Run Code Online (Sandbox Code Playgroud)
由于base64编码的性质,使用数据URL传递大型二进制blob可能有点低效.
您还可以实现专门处理数据的自定义NSURLProtocol.Apple有一些示例代码使用自定义协议来传递图像对象:https://developer.apple.com/library/mac/samplecode/SpecialPictureProtocol/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003816
您缺少的是NSURLProtocol类.需要大约三十行代码,任何正确处理URL的代码都可以访问内存中的数据.阅读文档,这并不困难,并提供示例代码.
不幸的是,有些API将NSURL作为参数,但只能处理文件URL.
| 归档时间: |
|
| 查看次数: |
6317 次 |
| 最近记录: |