我正在尝试在我的应用中创建一个YouTube应用
加载webView的Mt源代码是:
ViewController头文件:
@interface ViewController : UIViewController
@property (nonatomic, strong) UIWebView *webView;
@end
ViewController实现文件 - (void)viewDidLoad { [super viewDidLoad]; //在加载视图后进行任何其他设置,通常是从笔尖。
self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];
self.webView.layer.borderWidth = 1.0;
self.webView.layer.borderColor = [UIColor redColor].CGColor;
self.webView.backgroundColor = [UIColor blackColor];
self.webView.center = self.view.center;
[self.view addSubview:self.webView];
NSString* embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSURL *url = [NSURL URLWithString:@"https://www.youtube.com/watch?v=K14RnTVt194"];
NSString* html = [NSString stringWithFormat:embedHTML, url, self.webView.frame.size.width, self.webView.frame.size.height];
[self.webView loadHTMLString:html baseURL:nil];
}
运行时,我的应用程序崩溃并给我以下屏幕
如何解决这个问题?
答案 0 :(得分:0)
您的代码运行正常,因此问题不在于webview。您可以在左侧面板上看到“线程1 ”,并在线程崩溃前的最后一个进程显示“__psynch_mutexwait
”。在某些情况下,您可能会收到此错误;
NSTimer
NSNotification
(尤其是键值观察者)CoreData
对象,同时使用主线程上下文或同时在不同线程(背景或主要)上使用相同的托管对象上下文。 尝试检查您是否在这种情况下做错了什么。另外,尝试异步操作你尝试的东西;
dispatch_async(dispatch_get_current_queue(), ^{
// The work that needs to be done on main thread
});
答案 1 :(得分:0)
我认为崩溃是在你的stringWithFormat调用中,因为我试图替换&#34;%@&#34;在您的embedHTML中使用NSURL对象,而不是NSString。