“试图从主线程或网络线程以外的线程获取Web锁.这可能是从辅助线程调用UIKit的结果.现在崩溃……”
我在这里提交了示例代码
- (voID)vIEwDIDLoad { appDeleg = (NewAshley_MedisonAppDelegate *)[[UIApplication sharedApplication] delegate]; [[self tblVIEw1] setRowHeight:80.0]; [super vIEwDIDLoad]; self.Title = @"Under Ground"; [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; [NSThread detachNewThreadSelector:@selector(CallParser) toTarget:self withObject:nil];}-(voID)CallParser { Parsing *parsing = [[Parsing alloc] init]; [parsing DownloadAndParseUnderground]; [parsing release]; [self Update_VIEw]; //[myIndicator stopAnimating]; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;}
这里的“DownloadAndParseUnderground”是从RSS Feed中下载数据的方法
-(voID) Update_VIEw{ [self.tblVIEw1 reloadData];}
当调用Update_VIEw方法时,tableVIEw重载数据并在cellForRowAtIndexPath中创建错误而不显示自定义单元格
- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath { static Nsstring *CellIDentifIEr = @"Cell"; CustomtablevIEwCell *cell = (CustomtablevIEwCell *) [tblVIEw1 dequeueReusableCellWithIDentifIEr:CellIDentifIEr]; if (cell == nil) { [[NSBundle mainBundle] loadNibnamed:@"customCell" owner:self options:nil]; cell = objCustCell; objCustCell = nil; }解决方法 好请解释正确为什么在解析方法中需要线程?在你的代码中你在正确的线程中使用表重载方法….
因为
你不能把任何与你的VIEW相关的东西放在线程中……
你只能把后台进程像解析一样…如果你想在解析之后重新加载表你可以在你的代码中使用一些标志值并在解析你的加载表之后
@H_301_42@ 总结以上是内存溢出为你收集整理的iphone – 如何在使用线程时解决错误?全部内容,希望文章能够帮你解决iphone – 如何在使用线程时解决错误?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)