Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIWebView loadHTMLString在EXC\u访问错误的情况下使应用程序崩溃_Ios_Uiwebview_Exc Bad Access - Fatal编程技术网

Ios UIWebView loadHTMLString在EXC\u访问错误的情况下使应用程序崩溃

Ios UIWebView loadHTMLString在EXC\u访问错误的情况下使应用程序崩溃,ios,uiwebview,exc-bad-access,Ios,Uiwebview,Exc Bad Access,我的应用程序中的屏幕需要加载嵌入的YouTube视频。我是这样的: NSString *html = @"<iframe id='ytplayer' type='text/html' width='300' height='390' src='http://www.youtube.com/embed/nK8bGHU3d0U?autoplay=1&origin=http://example.com' style=\"background-color: #000000;\" frame

我的应用程序中的屏幕需要加载嵌入的YouTube视频。我是这样的:

NSString *html = @"<iframe id='ytplayer' type='text/html' width='300' height='390' src='http://www.youtube.com/embed/nK8bGHU3d0U?autoplay=1&origin=http://example.com' style=\"background-color: #000000;\" frameborder='0'/>"
[self embedYouTube:html frame:CGRectMake(left, 780, 640, 500)];

- (void)embedYouTube:(NSString *)urlString frame:(CGRect)frame {    
    NSString *html = [NSString stringWithFormat:urlString, urlString, frame.size.width, frame.size.height];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
    videoView.backgroundColor = [UIColor blackColor];
    videoView.opaque = NO;
    [videoView loadHTMLString:html baseURL:nil];
    [self.scrollView addSubview:videoView];
}
我不知道如何从这里开始。此外,我知道这个EXC_BAD_访问通常是内存错误的指示,但这里的情况似乎不是这样。我不会在这个屏幕上来回移动,只是在应用程序启动后立即点击它。它崩溃了


当我将应用程序移动到硬盘上的其他位置时,它工作正常。我不知道为什么

当我运行它时,代码并没有崩溃,所以我对此没有任何线索,它可能只是一个损坏的缓存(有过多次异常行为)。但是,您的代码也没有加载视频,我在进行以下更改后使其正常工作:

将方法的第一行
embedYouTube:frame:
更改为:

NSString *html = [NSString stringWithFormat:@"<html><body><iframe class=\"youtube-player\" type=\"text/html\" width=\"%f\" height=\"%f\" src=\"%@\" allowfullscreen frameborder=\"0\" rel=nofollow></iframe></body></html>", frame.size.width,frame.size.height, urlString];

谢谢,莱约宁。“损坏的缓存”是什么意思?当您遇到这些缓存问题时,您是如何修复的?只需从设备/模拟器中删除应用程序,这样下次运行应用程序时它就必须进行干净的安装。(抱歉,没有什么神奇的;-)我所做的更改的行为是一样的,因为我今天早些时候测试了它(您的代码+2行更改如上),并且工作得非常好。。。
NSString *html = [NSString stringWithFormat:@"<html><body><iframe class=\"youtube-player\" type=\"text/html\" width=\"%f\" height=\"%f\" src=\"%@\" allowfullscreen frameborder=\"0\" rel=nofollow></iframe></body></html>", frame.size.width,frame.size.height, urlString];
[self embedYouTube:@"http://www.youtube.com/embed/nK8bGHU3d0U?autoplay=1&origin=http://example.com" frame:frame];