NSURL和UIWebView的问题

时间:2012-01-07 23:02:06

标签: objective-c uiwebview nsurl nsurlrequest master-detail

我正在开发一个主详细信息应用程序,在tableView中进行选择后重新加载我的webview时出现问题。我倾向于认为这个问题在我的NSURL任务中非常简单。以下是相关代码。

这个功能在我的主视图中;

- (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分配没有按预期工作。我已经使用NSLog打印了_currentTag,它在发生时保持正确的值。

url被声明为一个强大的非原子属性。当我执行这个时,所有这些函数都被调用,但是在执行displayMaster函数之后,WebView的内容不会改变。

编辑:我删除了一些OP,因为我已经清楚地确定了导致问​​题的代码行。它是didEndElement中的URL赋值,URLWithString返回nil。

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/news/general_music_news/30_seconds_to_mars_no_plans_to_split.html 2012-01-07 20:14:22.982 MusicNews [1162:f803] url =(null),(null) 2012-01-07 20:14:22.982 MusicNews [1162:f803] urlString =             http://www.ultimate-guitar.com/news/upcoming_releases/kiss_two_days_from_finishing_new_album.html 2012-01-07 20:14:22.983 MusicNews [1162:f803] url =(null),(null)

任何人都可以解释为什么URLWithString在这里不起作用吗?

0 个答案:

没有答案