当点击表格视图单元格时缓慢加载
当我点击表格视图单元格时,它将在同一个表格视图中持续一段时间(直到下一页完全加载),那么它将显示下一个视图..当点击表格视图单元格时缓慢加载
我要上单击表格视图单元格,应立即后藤下一个页面,并显示加载页面弹出..
我有impActivityAgent尝试,并试图表明警报视图时,它会进入下一个页面(但查看是前一页即表格视图)..但..其完全加载页面,这将需要时间,然后其显示警报..
在下一页我发布和解析数据,这将需要时间,在那段时间我想显示活动指标..
我已经尝试了很多方法,但仍然第一次完全加载下一页,然后显示内容或alertView或活动的指标,我不能够在表格视图单元格单击时,显示活动的指标..
我的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
nextTableViewController *doc = [[nextTableViewController alloc]initWithNibName:@"nextTableViewController" bundle:nil];
[self.navigationController pushViewController:doc animated:YES];
}
或下一视图控制器是:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[ImpActivityAgent defaultAgent] makeBusy:YES];
NSURL *loadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/gmail.com",inputURL]];
htmlData = [NSData dataWithContentsOfURL:loadUrl];
self.htmlSTR = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
[self parseHTML];
}
和在解析函数我解析我得到的内容,作为HTML格式的答复使用“hpple”解析器..
只需使用一个单独的线程来处理解析。希望这段代码能帮助你。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[ImpActivityAgent defaultAgent] makeBusy:YES];
[NSThread detachNewThreadSelector:@selector(newMethodForParsing) toTarget:self withObject:nil];
}
-(void)newMethodForParsing
{
NSURL *loadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/gmail.com",inputURL]];
htmlData = [NSData dataWithContentsOfURL:loadUrl];
self.htmlSTR = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
[self parseHTML];
[tableView reload]; // tableView refers to ur table view name
}
试试这个
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[ImpActivityAgent defaultAgent] makeBusy:YES];
[self performSelectorInBackground:@selector(start) withObject:Nil];
//or you can use after delay then no need to use perform selector on main thread in start method.
[self performSelector:@selector(start) withObject:nil afterDelay:0.5];
}
-(void)start
{
NSURL *loadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/gmail.com",inputURL]];
htmlData = [NSData dataWithContentsOfURL:loadUrl];
self.htmlSTR = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
[self performSelectorOnMainThread:@selector(parseHTML) withObject:Nil waitUntilDone:YES];
}
试试吧....
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(newMethodForParsing) userInfo:nil repeats:NO];
}
-(void)newMethodForParsing
{
NSURL *loadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/gmail.com",inputURL]];
htmlData = [NSData dataWithContentsOfURL:loadUrl];
self.htmlSTR = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
[self parseHTML];
}
@Raju:尝试我的代码它是100%帮助你我多次使用它.... – 2013-04-08 05:28:52
对不起,它不工作.. – Raju 2013-04-08 12:06:18
Ganapathy的回答是存在内存泄漏,你需要放置一个autoreleasepool的方法内。这是一个更简单的方法来做到这一点。这将在主线程上运行,但在队列中的现有任务之后运行。
如果你想让它在不同的线程运行与dispatch_get_global_queue()
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[ImpActivityAgent defaultAgent] makeBusy:YES];
dispatch_async(dispatch_get_main_queue(), ^{
NSURL *loadUrl = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/gmail.com",inputURL]];
htmlData = [NSData dataWithContentsOfURL:loadUrl];
self.htmlSTR = [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
[self parseHTML];
)
}
检查任何回地面的过程是怎么回事代替ü选择的行之后。发布一些相关的代码。 – Ganapathy 2013-04-08 04:33:55
no there is no back groung正在进行的过程.. – Raju 2013-04-08 04:39:22
@Raju,发布您的代码 – 2013-04-08 04:40:24