【问题标题】:TFHpple request not running on background thread?TFHpple 请求不在后台线程上运行?
【发布时间】:2012-10-12 03:50:41
【问题描述】:

这在主线程上运行良好,但由于某种原因在后台线程上运行时不起作用。如果您只是注释掉对 dispatch_async 的调用,那么程序就可以正常工作!

代码:

NSString *requestString = [NSString stringWithFormat:@"http://www.songlyrics.com/index.php?section=search&searchW=%@+%@&submit=Search",actualSongName,actualSongArtist];
        NSLog(@"0");
        TFHpple *requestParser = [TFHpple hppleWithHTMLData:[NSData dataWithContentsOfURL:[NSURL URLWithString:requestString]]];
        NSLog(@"1");
        NSString *requestedURLXPathQuery = @"//a";
        NSArray *requestedStringsNodes = [requestParser searchWithXPathQuery:requestedURLXPathQuery];
        NSLog(@"2");

这是记录的内容:

2012-10-11 21:39:05.636 SuperViewer[6612:110b] 0
2012-10-11 21:39:05.651 SuperViewer[6612:907] Unable to parse.
2012-10-11 21:39:06.520 SuperViewer[6612:110b] 1
2012-10-11 21:39:06.565 SuperViewer[6612:110b] 2

这一切都在后台线程上运行。 我还记录了“requestString”变量及其罚款。

任何想法是什么问题? Hpple 不是在后台线程上运行吗?

谢谢!

【问题讨论】:

    标签: iphone objective-c ios ipad hpple


    【解决方案1】:

    我不知道您的确切问题是什么。但是使用NSThread 而不是使用dispatch_async。确保使用

      -[NSObject performSelectorOnMainThread:withObject:waitUntilDone:] 
    

    在主线程上运行(用于 Ui 交互功能)

    【讨论】:

    • 这是我最初所做的......所以不知不觉这也不起作用。还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多