2017-04-23 13 views
0

Swiftプロジェクトのアセットとして含まれているファイルから4バイトを読み込もうとしています。IOS InputStream.readは-1を返しますが、streamErrorはnilではありません。

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を返している:以下のコードでストリームをとして作成されたInputStream、です。マニュアルでは、-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

注意ファイル名を分割することなく。 –

答えて

2

あなたはopen() ストリームあなたが読み取りまたはそれから書くことができる必要があります前に: ``あなただけ聞かせてパス= Bundle.main.path(:ファイル名、ofTypeゼロforResource)を呼び出すことができ

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

私の一日を保存していただきありがとうございます。 –

関連する問題