Я пытаюсь запустить -getHTMLupdate в фоновом режиме, но он не работает.Запуск фонового потока не работает
-viewDidLoad
- (void)viewDidLoad {
UIImage *navBarImage = [[UIImage imageNamed:@"menubar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5, 15)];//Navbar
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
[self performSelectorInBackground:@selector(getHTMLupdate) withObject:nil];
}
Вот -getHTMLupdate
-(void) getHTMLupdate {
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
/* set headers, etc. on request if needed */
[request setURL:[NSURL URLWithString:@"http://appstarme.com/GD/GDHTMLPARSINGINFORMATION.php"]];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL];
NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSScanner *scanner = [NSScanner scannerWithString:html];
NSString *token = nil;
[scanner scanUpToString:@"<h1>" intoString:NULL];
[scanner scanUpToString:@"</h1>" intoString:&token];
NSLog(@"DATA : %@", html);
_updateFromUser.text = html;
Вот вывод консоли
2013-07-02 20:26:25.775 Social App[8130:3707] DATA :
Please check out the new Skype contest at www.Skype.com
2013-07-02 20:26:25.776 Social App[8130:3707] bool _WebTryThreadLock(bool), 0x1e8ab970: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
1 0x3a021259 WebThreadLock
2 0x36083185 <redacted>
3 0xc75fd -[homeChannel getHTMLupdate]
4 0x349e7231 <redacted>
5 0x3c2170e1 <redacted>
6 0x3c216fa8 thread_start
NSLog странно возвращает правильные данные, но приложение по-прежнему падает
EDIT
Добавлено это в конце кода
[_updateFromUser performSelectorOnMainThread: @selector(setText:)
withObject: html
waitUntilDone: FALSE];
работал отлично.
Вы не должны менять какие-либо элементы интерфейса вне основной темы! В последней строке вы получаетеHTMLupdate, что вы делаете, это проблема? –