Objective c NSURL和UIWebView的问题
我正在使用master detail应用程序,在tableView中进行选择后重新加载我的webview时遇到问题。我倾向于认为我的NSURL作业的问题很简单。以下是相关代码 这个功能在我的主视图中Objective c NSURL和UIWebView的问题,objective-c,uiwebview,nsurl,nsurlrequest,master-detail,Objective C,Uiwebview,Nsurl,Nsurlrequest,Master Detail,我正在使用master detail应用程序,在tableView中进行选择后重新加载我的webview时遇到问题。我倾向于认为我的NSURL作业的问题很简单。以下是相关代码 这个功能在我的主视图中 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UGStory *detailStory = [_ugFeed.stories objectAtInde
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UGStory *detailStory = [_ugFeed.stories objectAtIndex:indexPath.row];
[_detailViewController displayMaster:detailStory.url];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
这个在detailview中
- (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,因为我已经清楚地确定了是哪一行代码导致了问题。这是DiEndElement中的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音乐新闻[1162:f803]URL字符串=
2012-01-07 20:14:22.982音乐新闻[1162:f803]url=(空)、(空)
2012-01-07 20:14:22.982音乐新闻[1162:f803]URL字符串=
2012-01-07 20:14:22.983音乐新闻[1162:f803]url=(空)、(空)
有人能解释一下为什么URLWithString不在这里工作吗?如果你使用
NSLog(@“url=%@,%@”,URLTOOAD,[URLTOOAD absoluteString]),你会得到什么代码>在displayMaster
中?另外,您从解析器获得的URL字符串是否以“http://”开头?我从displayMaster中对NSLog的调用中获得“URL=(null),(null)”。URL字符串确实包含http://,它们看起来都不错。嗯,好的,所以URL被释放了。如果执行NSLog(@“title=%@”,detailStory.title),会发生什么情况代码>在-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindepath*)indepath
?只是想知道标题是否也丢失了。这显示了正确的标题。只是网址而已。在UGStory
中,URL声明为@属性(强,非原子)NSURL*URL代码>(关键在于强大)?