о NSInputstream - PullRequest
       30

о NSInputstream

0 голосов
/ 25 мая 2011
-(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];

Там, в файле в Документах, я хочу загрузить в буфер, используйте этот метод, но на самом деле всегда читайте -1, что-то не так в моем методе?

Ответы [ 2 ]

2 голосов
/ 22 августа 2012

Причина, по которой вы всегда получаете -1, заключается в том, что вы забыли открыть поток, поэтому все, что вам нужно сделать, это вставить строку [inStream open]; после инициализации NSInputStream и перед попыткой чтения из него.

0 голосов
/ 22 июня 2011

Вы должны проверить, доступен ли inStream по

if (nil == inStream)
...