首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅限SWIFT --从NSInputStream读取

仅限SWIFT --从NSInputStream读取
EN

Stack Overflow用户
提问于 2014-07-19 20:16:22
回答 1查看 11.6K关注 0票数 13

你能给我解释一下如何正确地从NSInputStream中读取数据吗?

我不明白什么是UnsafePointer以及它的用途(也适用于UnsafeArray)。

NSInputStream读取函数获取一个可以用UnsafePointer对象填充的CMutablePointer。

与Java的Streams相比,它真的是一团糟。

你有什么推荐的?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-13 19:15:42

我自己已经弄明白了。

看看这段简单的代码:

代码语言:javascript
复制
let data: NSData = "Jonathan Yaniv.".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
let stream: NSInputStream = NSInputStream(data: data)

var buffer = [UInt8](count: 8, repeatedValue: 0)

stream.open()

if stream.hasBytesAvailable {
    let result :Int = stream.read(&buffer, maxLength: buffer.count)
}

//  result = 8 -- because of the size of the buffer.
//  buffer contains the first 8 bytes repreenting the word "Jonathan"

说明: read方法签名: stream.read(<#buffer: UnsafeMutablePointer#>,maxLength:<#Int#>)

它获取一个UnsafeMutablePointer作为第一个参数,这意味着该方法希望获取指向UInt8 -类型的数组的指针,而不是数组本身的

因此,我们在buffer变量的名称前添加了&符号。&buffer ==指向名为buffer的UInt8数组对象的指针。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24840297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档