Mau*_*lik 0 iphone objective-c uitableview ios
我正在尝试显示推文UITableView.
代码: -
- (void)requestTimeline:(int)count
{    
    NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/user_timeline.json"];
    NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
    [parameters setObject:@"abc" forKey:@"screen_name"];
    [parameters setObject:@"20" forKey:@"count"];
    [parameters setObject:@"1" forKey:@"include_entities"];
    TWRequest *request = [[TWRequest alloc] initWithURL:url parameters:parameters requestMethod:TWRequestMethodGET];
    [request performRequestWithHandler:^(NSData *responseData1, NSHTTPURLResponse *urlResponse, NSError *error)
    {
        if (responseData1 != nil)
        {
            NSError *error = nil;
            self.itemsToDisplay = [NSJSONSerialization JSONObjectWithData:responseData1 options:NSJSONReadingMutableLeaves error:&error];
            if (self.itemsToDisplay != nil)
            {
                [self.tableView reloadData];
            }
            else
            {
                NSLog(@"Error serializing response data %@ with user info %@.", error, error.userInfo);
            }
        }
        else
        {
            NSLog(@"Error requesting timeline %@ with user info %@.", error, error.userInfo);
        }
    }];
}
self是UITableViewController子类.
由于阻止,Twitter请求将在不在主线程上的另一个线程上执行.这就是为什么它会崩溃.
//TWRequest.h
// Issue the request. This block is not guaranteed to be called on any particular thread.
- (void)performRequestWithHandler:(TWRequestHandler)handler;
崩溃事件: -
bool _WebTryThreadLock(bool),0xa8e4f50:尝试从主线程或Web线程以外的线程获取Web锁.这可能是从辅助线程调用UIKit的结果.现在崩溃......
如何解决这个问题?
谢谢...
Dai*_*jan 12
只能从主线程中使用Web视图.UIKit的大部分内容 - tableView reloadData命令也不是线程安全的
dispatch_async(dispatch_get_main_queue(), ^{ 
    //all you ever do with UIKit.. in your case the reloadData call
    [self.tableView reloadData];
});
| 归档时间: | 
 | 
| 查看次数: | 3508 次 | 
| 最近记录: |