UIWebView作为UITableViewCell的一部分:由于线程锁定而导致崩溃

时间:2010-06-22 20:46:28

标签: iphone uitableview uiwebview multithreading locking

我正在尝试添加 UIWebView 作为 UITableViewCell 的子视图,以便显示一些使用MIMEType'application / xhtml + xml'格式化的数据。 即使只是按照以下代码中的描述初始化UIWebView也会导致应用程序崩溃!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    
NSLog(@"cellForRowAtIndexPath: '%d' in section '%d'", indexPath.section, indexPath.row);

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

UIWebView * webView = [[UIWebView alloc]initWithFrame:cell.frame];

return cell;

}

我收到了这条消息:

  

bool _WebTryThreadLock(bool),0x10a7f50:尝试从主线程或Web线程以外的线程获取Web锁。这可能是从辅助线程调用UIKit的结果。现在崩溃......<

我无法弄清楚我做错了什么!

感谢您的帮助

杰拉德

1 个答案:

答案 0 :(得分:2)

错误消息告诉您发生了什么:您可能不在主线程上?您只能从主线程访问UIKit。

此外,cell.frame很可能不是您想要的。尝试使用CGRectMake(...)设置固定大小。别忘了添加它。 : - )