0
-(NSString*)dateFilePath{

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory=[paths objectAtIndex:0];

return [documentsDirectory stringByAppendingPathComponent:kFileName];
}


- (void)viewDidLoad
{

int actuallyRead=0;

NSString *path=[self dateFilePath];

NSURL *audiourl=[[NSURL alloc]initFileURLWithPath:path];

NSLog(@"%@",audiourl);

inStream=[[NSInputStream alloc]initWithURL:audiourl];

actuallyRead=[inStream read:buffer maxLength:sizeof(buffer)];

NSLog(@"%d",actuallyRead);

[dataBuffer1 appendBytes:buffer length:actuallyRead];

NSLog(@"%d",actuallyRead);

[inStream release];

[super viewDidLoad];

}
IN .h file
NSInputStream  *inStream;
NSMutableData  *dateBuffer1;
unint8_t       buffer[1024];

Documents のファイルに、このメソッドを使用してバッファにロードしたいのですが、実際には Read は常に -1 です。私のメソッドに何か問題がありますか?

4

2 に答える 2

2

常に -1 を取得する理由は、ストリームを開くのを忘れたためです。そのため[inStream open];、NSInputStream を初期化した後、それから読み取ろうとする前に行を挿入するだけです。

于 2012-08-22T12:27:41.130 に答える
0

インストリームが利用可能かどうかを確認する必要があります

if (nil == inStream)
于 2011-06-22T10:41:42.193 に答える