2017-04-23 81 views
0

我試圖從Swift項目中作爲資產包含的文件讀取4個字節。在下面的代碼流是一個InputStream,其作爲創建:IOS InputStream.read返回-1但streamError爲零

let part = fileName.components(separatedBy: ".") 
let path = Bundle.main.path(forResource: part[0], ofType: part[1]) 
let stream = InputStream.init(fileAtPath: path!) 

但是,由於某種原因,InputStream.read被返回-1。該文檔指出,當返回-1時,更多信息將位於streamError字段中,但調試器將此字段顯示爲nil。

var val = [UInt8](repeating: 0, count: 4) 
let bytesRead = stream.read(&val, maxLength: 4) 
let err = stream.streamError 
let desc = err.debugDescription 

該文件長度爲100kb,因此它不應該在流的末尾。

+1

注意,你可以叫'讓道= Bundle.main.path(forResource:文件名,ofType:無)'無需分割文件名稱。 –

回答

2

您必須open() 之前,你可以閱讀或寫一個流:

let stream = InputStream(fileAtPath: path!) 
stream.open() 
+0

謝謝你拯救我的一天。 –