【问题标题】:Do the stream classes in Cocoa support seeking?Cocoa 中的流类是否支持搜索?
【发布时间】:2011-10-24 14:07:25
【问题描述】:

我需要一个可以从内存流中读取和写入并支持查找的 Cocoa 类。在 C# 中,MemoryStream 支持方法 seek,在 Java 中,ByteArrayInputStream 支持方法 markskipreset

在iOS开发中,等价的类和方法有哪些?

我的项目需要上述功能,如果默认情况下 iOS 框架不支持它,那么实现我自己的框架的最佳方式是什么?例如。编写我自己的流子类,继承自 NSInputStream/NSOutputStream,内部将包含自定义代码?

【问题讨论】:

    标签: cocoa-touch cocoa nsinputstream nsoutputstream


    【解决方案1】:

    任意的NSInputStreamNSOutputStream 似乎不支持随机偏移搜索,并且众所周知,创建它们的子类非常困难。

    如果您要读取和写入磁盘上的本地文件(我认为您必须这样做,因为我不确定您如何在网络连接上寻找随机偏移量...),那么您可能正在寻找的是 NSFileHandle

    【讨论】:

    • 我实际上是在尝试读写内存,而不是磁盘上的文件。还有其他选择吗?
    • @Lopper “读写内存”是什么意思?所有对象都存在于内存中,创建新对象和修改属性一样都算作写入内存。您是否正在寻找NSMutableData
    • @@Dave 我正在开发的 iOS 应用程序真正需要的是一组通用的方法调用(或向 iOS 世界中的类实例发送消息),我可以利用这些方法调用来阅读或将二进制数据写入文件或内存。 NSFileHandle 用于文件,而 NSMutableData 用于二进制数据,但是将两者结合起来以使一组通用的方法可以用于两者的优雅方法是什么?这将包括能够同时使用搜索功能。
    • @Lopper 可能是一个新类,它为NSMutableDataNSFileHandle 抽象了一个通用API,并适当地创建了正确的对象?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多