iphone – 缓冲NSOutputStream用作NSInputStream?

iphone – 缓冲NSOutputStream用作NSInputStream?,第1张

概述我有这个消费者类,它接受一个NSInputStream作为异步处理的参数,我想推送来自一个生产者类的数据,它需要提供一个NSOutputStream作为其输出源.现在我如何设置缓冲(或透明)流,作为生产者的输出流,同时与消费者类的NSInputStream同时? 我看了一下NSOutputStream outputStreamToMemory和outputStreamToBuffer:capaci 我有这个消费者类,它接受一个NSinputStream作为异步处理的参数,我想推送来自一个生产者类的数据,它需要提供一个NSOutputStream作为其输出源.现在我如何设置缓冲(或透明)流,作为生产者的输出流,同时与消费者类的NSinputStream同时?

我看了一下NSOutputStream outputStreamToMemory和outputStreamToBuffer:capacity:但是并没有真正弄清楚如何使用它作为NSinputSource的输入.

我有一些想法设置一个持有实际缓冲区的中间人类,然后创建两个子类(每个NSinput / OutputStream一个),它保存对此缓冲类的引用,并且这些子类将大多数调用委托给该类,例如输出子类方法hasspaceAvailable,写入:maxLength :,对于输入,hasBytesAvailable,读取:maxLength等.

任何关于如何处理这种情况的提示都是值得赞赏的谢谢.

解决方法 完成此 *** 作的一种方法是使用apple开发者站点上的示例代码.
SimpleURLConnection example

这是怎么做的,可以在PostController.m代码中看到

@interface Nsstream (BoundPairAdditions)+ (voID)createBoundinputStream:(NSinputStream **)inputStreamPtr outputStream:(NSOutputStream **)outputStreamPtr bufferSize:(NSUInteger)bufferSize;@end@implementation Nsstream (BoundPairAdditions)+ (voID)createBoundinputStream:(NSinputStream **)inputStreamPtr outputStream:(NSOutputStream **)outputStreamPtr bufferSize:(NSUInteger)bufferSize{    CFReadStreamRef     readStream;    CFWriteStreamRef    writeStream;    assert( (inputStreamPtr != NulL) || (outputStreamPtr != NulL) );    readStream = NulL;    writeStream = NulL;    CFStreamCreateBoundPair(        NulL,((inputStreamPtr  != nil) ? &readStream : NulL),((outputStreamPtr != nil) ? &writeStream : NulL),(CFIndex) bufferSize);    if (inputStreamPtr != NulL) {        *inputStreamPtr  = [NSMakeCollectable(readStream) autorelease];    }    if (outputStreamPtr != NulL) {        *outputStreamPtr = [NSMakeCollectable(writeStream) autorelease];    }}@end

基本上你将两个流的末端连同一个缓冲区.

总结

以上是内存溢出为你收集整理的iphone – 缓冲NSOutputStream用作NSInputStream?全部内容,希望文章能够帮你解决iphone – 缓冲NSOutputStream用作NSInputStream?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1026809.html

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

发表评论

登录后才能评论

评论列表(0条)

保存