Чтение NSInputStream приводит к доступной ошибке -1 байт.

Я пытаюсь сделать простую кодировку, используя NSInputStream и NSOutputStream:

import Foundation

let path = "/Users/johni/desktop/a" // holds "123456789abcdef"
var data: NSData = NSData(contentsOfFile: path)
var inp: NSInputStream = NSInputStream(data: data)
println(data.length) // returns 15
println(inp.hasBytesAvailable) // returns false

Я получаю -1 от метода чтения, что означает, что у него нет доступных байтов, почему это происходит?

Я также попытался инициализировать NSInputStream напрямую с помощью инициализатора fileAtPath и получил ту же ошибку.


person johni    schedule 17.07.2014    source источник


Ответы (1)


Вы не можете использовать входной поток, пока не откроете его.

inp.open()
inp.hasBytesAvailable //returns true
person jatoben    schedule 18.07.2014