我想使用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];
我希望在不创建临时文件的情况下填充“内容”变量。我可以在内存中完成所有这些操作吗?我没有在NSOutputStream documentation中看到用于此的API。
最佳答案
根据难以查找的文档,首先使用内存初始化输出流,然后使用键NSStreamDataWrittenToMemoryStreamKey调用propertyForKey方法。
例如:
NSOutputStream *outputStream = [[NSOutputStream alloc] initToMemory];
[outputStream open];
// fill the output stream somehow
NSData *contents = [outputStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
[outputStream close];
关于ios - 从内存中的NSOutputStream获取NSData?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23922195/