ios – 从内存中的NSOutputStream获取NSData?

前端之家收集整理的这篇文章主要介绍了ios – 从内存中的NSOutputStream获取NSData?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用NSOutputStream来累积数据,然后在完成后,使用内容创建一个NSData对象.我可以在输出流基于文件时执行此操作,如下所示:
NSString *tmpDirectory = NSTemporaryDirectory();
NSString *filePath = [tmpDirectory stringByAppendingPathComponent:@"tempfile"];
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
NSOutputStream *outputStream = [[NSOutputStream alloc] initToFileAtPath:filePath append:NO];     [outputStream open];

// fill the output stream here

NSData *contents = [NSData dataWithContentsOfFile:filePath];
[outputStream close];

我希望填充’contents’变量而不创建临时文件.我可以在记忆中做到这一点吗?我在NSOutputStream documentation中没有看到API.

解决方法

根据难以找到的文档,首先使用内存初始化输出流,然后使用密钥NSStreamDataWrittenToMemoryStreamKey调用propertyForKey方法.

对于你的例子:

NSOutputStream *outputStream = [[NSOutputStream alloc] initToMemory];
[outputStream open];

// fill the output stream somehow

NSData *contents = [outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
[outputStream close];
原文链接:https://www.f2er.com/iOS/330899.html

猜你在找的iOS相关文章