играть ссылки на YouTube не работает - PullRequest
0 голосов
/ 16 января 2012

Вот мой код

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
    UIWebView * videoView;
    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>";  
    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
    if(videoView == nil) {  
        videoView = [[UIWebView alloc] initWithFrame:frame];  
        [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
}  

так в viewDidLoad я звоню

[self embedYouTube:@"http://www.youtube.com/watch?v=2mcjR3TsK4s&feature=g-logo&context=G2e376ceFOAAAAAAAAAA" frame:self.view.bounds];

Я тестирую его в ipad2 ios 5.0, и это ошибка

- [_ UIAppearance loadHTMLString: baseURL:]: нераспознанный селектор отправлен в экземпляр 0x3ec3e63c 2012-01-15 22: 50: 22.158 test2 [3853: 707] * Завершение приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [_ UIAppearance loadHTMLString: baseURL:]: нераспознанный селектор, отправленный экземпляру 0x3ec3e63c» * Первый стек вызовов вызовов: (0x380cf8bf 0x37c1b1e5 0x380d2acb 0x380d1945 0x3802c680 0x3513 0x3407 0x31bb07ff 0x31baef9d 0x31ba1941 0x31c13541 0x3241 0x31baf7eb 0x31ba93bd 0x31b77921 0x31b773bf 0x31b76d2d 0x37dfddf3 0x380a3553 0x380a34f5 0x380a2343 0x380254dd 0x380253a5 0x31ba8457 0x31ba5743 0x3029 0x2f84) завершить вызов выбрасывание исключения (gdb)

Спасибо за помощь

1 Ответ

1 голос
/ 16 января 2012

Когда вы определили переменную как UIWebView * videoView;, предполагается, что она ссылается на некоторую память. Обычно это относится к nil и все работает нормально, но в вашем случае это относится к другому объекту и сравнение videoView == nil не сработает. Чтобы избежать этого, всегда объявляйте переменные и обращайтесь к ним nil explicity.

UIWebView *videoView = nil;
...