У меня вопрос по CFNetwork.Первый раз, когда я запланировал первый CFReadStream в текущий цикл запуска и получил список каталогов FTP-сервера, он работал нормально.После того, как я представил список каталогов в UITableView, в didSelectRowAtIndexPath я изменяю URL-адрес для отображения содержимого выбранного каталога.Я создаю новый поток с этим новым URL.Когда я пытаюсь открыть его с помощью CFReadStreamOpen (без планирования в текущем цикле выполнения), я получаю EXC_BAD_ACCESS.Я проверил это для зомби с NSZombieEnabled и не нашел ни одного зомби.Есть идеи?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
NSString *newAdr=[[NSString alloc]initWithFormat:@"%@/%@",self.addressString,cell.textLabel.text];
self.addressString=newAdr;
self.url=[NSURL URLWithString:self.addressString];
CFURLRef newFtpURL=(__bridge_retained CFURLRef)self.url;
CFReadStreamRef newStream=CFReadStreamCreateWithFTPURL(NULL, newFtpURL);
MyStreamInfo streamInformation;
streamInformation.readStream=newStream;
CFStreamClientContext clientContext={1,&streamInformation,NULL,NULL,NULL};
CFOptionFlags events= kCFStreamEventHasBytesAvailable | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered;
BOOL flagOpen=CFReadStreamSetClient(streamInformation.readStream, events, (void*)didStartReceiveList, &clientContext);
if(!CFReadStreamOpen(streamInformation.readStream)){
NSLog(@"Could not open read stream");
}
else {
[self readStreamData:newStream :&clientContext];
}
}