Проблемы с NSURL и UIWebView - PullRequest
       43

Проблемы с NSURL и UIWebView

0 голосов
/ 08 января 2012

Я работаю над основным приложением, и у меня возникла проблема с перезагрузкой веб-просмотра после того, как выбор сделан в tableView. Я склонен думать, что с моим заданием NSURL проблема очень проста. Ниже приведен соответствующий код.

эта функция у меня в masterview;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UGStory *detailStory = [_ugFeed.stories objectAtIndex:indexPath.row];

    [_detailViewController displayMaster:detailStory.url];

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

это в подробном обзоре

- (void) displayMaster:(NSURL *)urlToLoad
{
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:urlToLoad];
    [_webView loadRequest:requestObj];
}

и это где NSURL устанавливается

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:   (NSString *)namespaceURI qualifiedName:(NSString *)qName 
{
    if (_read == YES)
    {
        if ([elementName isEqualToString:@"title"]) {
           UGStory* temp = [_stories objectAtIndex:_i];
           temp.title = _currentTag;
        }
        if ([elementName isEqualToString:@"link"]) {
            UGStory* temp = [_stories objectAtIndex:_i];
            temp.url = [NSURL URLWithString:_currentTag];
            _read = NO;
            _i++;
        }
    }
    _currentTag = nil;
    return;
}

Я подозреваю, что мое назначение temp.url работает не так, как ожидалось. Я напечатал _currentTag, используя NSLog, и он содержит правильное значение, когда это происходит.

URL объявлен как сильное неатомное свойство. Когда я выполняю это, все эти функции вызываются, когда я ожидаю их, но после выполнения функции displayMaster содержимое WebView не меняется.

РЕДАКТИРОВАТЬ: Я удалил некоторые из моих OP, потому что я четко определил, какая строка кода вызывает проблему. Это присвоение URL в didEndElement, URLWithString возвращает ноль.

if ([elementName isEqualToString:@"link"]) {
            NSLog(@"urlString = %@", _currentTag);
            temp.url = [NSURL URLWithString:_currentTag];
            NSLog(@"url = %@, %@", temp.url, [temp.url absoluteString]);
            _read = NO;
            _i++;
        }

Вывод в моем журнале выглядит следующим образом для каждого объекта в моем массиве.

2012-01-07 20: 14: 22.971 MusicNews [1162: f803] urlString = http://www.ultimate -guitar.com / Новости / general_music_news / 30_seconds_to_mars_no_plans_to_split.html 2012-01-07 20: 14: 22.982 MusicNews [1162: f803] url = (ноль), (ноль) 2012-01-07 20: 14: 22.982 MusicNews [1162: f803] urlString = http://www.ultimate -guitar.com / Новости / upcoming_releases / kiss_two_days_from_finishing_new_album.html 2012-01-07 20: 14: 22.983 MusicNews [1162: f803] url = (ноль), (ноль)

Может кто-нибудь объяснить, почему URLWithString здесь не работает?

...