joh*_*hni 13 nsinputstream nsstream swift
你能解释一下我如何从NSInputStream中正确阅读?
我无法理解什么是UnsafePointer以及它的用途(也适用于UnsafeArray).
NSInputStream读取函数获取CMutablePointer,可以使用UnsafePointer对象填充该CMutablePointer.
与Java的Streams相比,这真是一团糟.
你会推荐什么 ?
谢谢!
joh*_*hni 22
我自己弄清楚了.
看看这个简单的代码:
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"
Run Code Online (Sandbox Code Playgroud)
Explanation:读取方法签名:stream.read(<#buffer:UnsafeMutablePointer#>,maxLength:<#Int#>)
它将UnsafeMutablePointer作为第一个参数,这意味着该方法希望获得一个类型为UInt8的数组的POINTER - 而不是数组本身
因此,我们在缓冲区变量的名称前添加&符号.&buffer ==指向名为buffer的UInt8数组对象的指针.
| 归档时间: |
|
| 查看次数: |
11138 次 |
| 最近记录: |