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